По заданному n найти сумму всех n-значных чисел. натуральное число n (1 ≤ n ≤ 100).
Я написала код он работает но только до n=18, как сделать так чтобы код работал и тогда когда n= 100?
#include < iomanip>
#include < cmath>
#include < iostream>
using namespace std;
int main()
{
long long n, sum=0, i1, i2;
cin >> n;
i1=pow(10, n-1);
i2=pow(10, n);
sum = (i1 + (i2-1)) * (i2 - i1) / 2;
cout < < sum;
}
begin
var a:=ArrRandom(35,100,50000); a.Println;
var k:=a.Sum;
Write('Всего книг ',k);
if (k>=1000000) and (k<=9999999) then
Writeln(' - шестизначное число')
else Writeln(' - не шестизначное число')
end.
Тестовые решения:
44847 40059 3938 43998 48227 2295 18961 36991 30123 41620 22198 13146 38442 8318 35835 49112 33119 4617 20383 19164 6367 30588 40391 31807 32046 49835 4990 817 31748 21075 16466 17557 44413 12879 803
Всего книг 897175 - не шестизначное число
36802 44900 5012 30120 29288 21787 24640 41798 38286 34288 3756 5543 765 28259 26754 29598 15994 40577 26492 10557 41597 48459 13095 29019 30351 47939 35197 10527 43439 21960 40977 41831 43125 48076 10234
Всего книг 1001042 - шестизначное число
const
n=10;
type
Sot=record
fam:string;
zp:integer;
end;
begin
var Sotr:=new Sot[n];
Writeln('Вводите фамилию и через пробел зарплату');
for var i:=0 to n-1 do begin
var s:=ReadlnString(i+1+':');
var ms:=s.Split;
(Sotr[i].fam,Sotr[i].zp):=(ms[0],StrToInt(ms[1]));
end;
var r:=Sotr.OrderBy(x->x.zp).First;
WritelnFormat('{0} получает всего лишь {1}',r.fam,r.zp)
end.
Тестовое решение:
Вводите фамилию и через пробел зарплату
1: Иванов 32000
2: Петров 28000
3: Козлов 34000
4: Сидорова 41400
5: Пупкин 30000
6: Кузьмина 36000
7: Васечкин 29700
8: Бененсон 32500
9: Паутова 41000
10: Ромашкин 36400
Петров получает всего лишь 28000