For 38. Дано целое число \(N (>0)\). Найти сумму
\(1^N + 2^{N-1} + ... + N^1\).
Чтобы избежать целочисленного переполнения, вычислять слагаемые этой суммы с помощью вещественной переменной и выводить результат как вещественное число.
Решение на Python 3
import random
N = random.randrange(1,11)
print("N = ",N)
print()
s = 0
for i in range(1,N+1):
p = 1.0
K = N + 1 - i
for j in range(0,K):
p *= i
s += p
print("i = ",i)
print("j = ",j)
print("p = ",p)
print("s = ",s)
print()
print("Sum = ",s)
Решение на C++
#include <bits/stdc++.h>
using namespace std;
int main() {
srand((int)time(0));
int N = rand() % 20 + 2;
//N = 150;
double s = 0, p;
int K;
for(int i = 1; i <= N; i++) {
p = 1.0;
K = N + 1 - i;
for(int j = 1; j <= K; j++)
p *= i;
s += p;
cout << i << " : " << p << " : " << s << endl;
}
cout << "N = " << N << endl;
cout << "Sum = " << s << endl;
return 0;
}