For36. Даны целые положительные числа $$N$$ и $$K$$. Найти сумму $$1^K + 2^K + … + N^K$$. Чтобы избежать целочисленного переполнения, вычислять слагаемые этой суммы с помощью вещественной переменной и выводить результат как вещественное число.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <stdio.h> int main(void) { int n,k; printf("N:"); scanf ("%i", &n); printf("K:"); scanf ("%i", &k); int i,i2; float rez=0,nk; for (i =1; i<=n; ++i){ nk=i; for (i2=1; i2<=k; ++i2) nk *=i; rez +=nk; } printf("%f\n",rez); return 0; } |
Другие задачи из раздела For можно посмотреть здесь.
Переменной nk необходимо присвоить 1, либо во втором цикле переменной i2 присвоить начальное значение 2, а то получается степень на 1 больше.