Нужно найти разницу между суммой всех цифр использованных для записи всех нечетных чисел от 1 до х и суммой всех цифр использованных для записи всех четных четных чисел от 1 до х. Вводится х. Пример: Ввод: 4 Вывод: -2
Вариант тупой - перебор:
int digSum(int N) // Подсчет суммы цифр в числе
{
int sign = (N%2 == 0) ? -1 : 1;
int sum = 0;
while(N)
{
sum += N%10;
N/=10;
}
return sum*sign;
}
int dumb(int N) // Просто цикл...
{
int sum = 0;
for(int i = 1; i <= N; ++i)
sum += digSum(i);
return sum;
}
Вариант чуточку поумнее - считать только не более 9 чисел, пользуясь тем, что разница для чисел, заканчивающихся на 9, в общем-то, почти очевидна:
int smart(int N)
{
int sum = 0;
int d = (N+1)/10;
sum = d*5;
for(int i = (N+1)/10*10; i <= N; ++i)
sum += digSum(i);
return sum;
}
Еще умнее возможно, но нет столько времени, чтоб сидеть, писать и отлаживать. И так получается ничего :)
Сборка персонального компьютера от Artline: умный выбор для современных пользователей