Informatică, întrebare adresată de ArMyFoRHeLL, 8 ani în urmă

Se dă n un număr natural nenul. Să se afle ultima cifră a sumei: S=1^4 + 2^4 + 3^4 + ... + n^4.
O metoda mai eficienta decat asta?
#include
using namespace std;
int main()
{
int i,n;
long long S=0;
cin>>n;
for(i=1;i<=n;i++)
S=S+i*i*i*i;
cout< return 0;
}

Răspunsuri la întrebare

Răspuns de rossetta
4
Am rezolvat aceasta problema foarte urat deoarece eram incepatoare in momentul in care am rezolvat-o. Daca vrei, te pot ajuta cu o sursa mult mai eleganta.

#include <stdio.h>
using namespace std;

int main() {
  int n , s = 0, p =1, i, im;
  scanf("%d", &n) ;
  int decateori = n / 10;
  int rest = n %  10;
  if (decateori == 0) {
    for (i = 1; i <= n ; i++) {
        im = i % 10;
        if (im == 1 || im == 3 || im == 7 || im == 9)
          s = (s + 1 ) % 10;
        else if (im == 2 || im == 4 || im == 6 || im == 8)
          s = (s + 6 ) % 10;
        else if (im == 5) 
          s = (s + 5) % 10;
   }
  }
  else {
        s = (3 * decateori ) % 10;
        for (i = 1; i <= rest ; i++) {
        im = i % 10;
        if (im == 1 || im == 3 || im == 7 || im == 9)
          s = (s + 1 ) % 10;
        else if (im == 2 || im == 4 || im == 6 || im == 8)
          s = (s + 6 ) % 10;
        else if (im == 5) 
          s = (s + 5) % 10;
   }
 
  } 
  printf("%d", s);
  return 0;
}

Alte întrebări interesante