Другие языки программирования и технологии
Создайте программу вычисления суммы трехзначных чисел
Программа вычисления суммы трехзначных чисел, в десятичной записи которых нет четных цифр, оформив функцию, определяющую наличие четных цифр в числе. C++
#include "iostream"
bool f(int n) { if (n/100%2==0||
n/10%10%2==0||n%10%2==0) return false; else return true; }
int main() { int k,s=0; for (k=100; k <= 999; k++) if (f(k)) s+=k; std::cout << s << '\n'; return 0; }
Это только для положительных трёхзначных чисел, потому что для всех трёхзначных чисел такая сумма равна нулю. А ответ должен быть 69375.
bool f(int n) { if (n/100%2==0||
n/10%10%2==0||n%10%2==0) return false; else return true; }
int main() { int k,s=0; for (k=100; k <= 999; k++) if (f(k)) s+=k; std::cout << s << '\n'; return 0; }
Это только для положительных трёхзначных чисел, потому что для всех трёхзначных чисел такая сумма равна нулю. А ответ должен быть 69375.
Всего трёхзначных чисел, в которых нет чётных цифр: 5 * 5 * 5 = 125. При этом каждое из 5 значений единиц, десятков и сотен встречается по 25 раз.
Просуммируем отдельно единицы, десятки и сотни, используя школьную формулу суммы арифметической прогрессии. Получаем формулу суммы всех 125 чисел:
25 * (100 + 900) * 5 / 2 + 25 * (10 + 90) * 5 / 2 + 25 * (1 + 9) * 5 / 2 =
= 25 * 100 * (1 + 9) * 5 / 2 + 25 * 10 * (1 + 9) * 5 / 2 + 25 * (1 + 9) * 5 / 2 =
= 111 * 25 * (1 + 9) * 5 / 2 =
= 111 * 25 * 25 =
= 69375
И никаких бессмысленных проверок на наличие чётных цифр!
Просуммируем отдельно единицы, десятки и сотни, используя школьную формулу суммы арифметической прогрессии. Получаем формулу суммы всех 125 чисел:
25 * (100 + 900) * 5 / 2 + 25 * (10 + 90) * 5 / 2 + 25 * (1 + 9) * 5 / 2 =
= 25 * 100 * (1 + 9) * 5 / 2 + 25 * 10 * (1 + 9) * 5 / 2 + 25 * (1 + 9) * 5 / 2 =
= 111 * 25 * (1 + 9) * 5 / 2 =
= 111 * 25 * 25 =
= 69375
И никаких бессмысленных проверок на наличие чётных цифр!
#include "iostream"
bool fb(int n){return (n/100)*(n/10)*n%2;}
int main(){int k=1000,s=0; while(k-->100)s+=fb(k)*k; std::cout<<s<<'\n';}
bool fb(int n){return (n/100)*(n/10)*n%2;}
int main(){int k=1000,s=0; while(k-->100)s+=fb(k)*k; std::cout<<s<<'\n';}
Aleksej Naumov
- Шедевр !..
Aleksej Naumov
Вот интересно, мне это мерещится, или один полудурок опять тут за компьютер считает ?
Похожие вопросы
- помогите пожалуйста..паскаль..составить программу вычисления суммы неповторяющихся элементов одномерного массива
- 1. Составить программу, определяющую совпадают ли первая и вторая цифры трехзначного числа. и ещё 4 в пояснении
- ПОЖАЛУЙСТА!!!!Напишите программу для вычисления суммы 10 натуральных чисел последовательностью 1+2+4+8+..в Pascal
- Вычисление суммы с факториалом в С++?
- С++. Элементы массива задаются с клавиатуры. Подсчитать количество элементов массива, являющихся трехзначным числом.
- Помогите пожалуйста написать программу в Паскале )) Написать программу для вычисления суммы в массиве из 10 элементов
- Есть ли программа способная подогнать случайные числа под нужную сумму
- Вычисление суммы ряда на c++
- Вычисление суммы чисел от 1 до 10 и их произведения. Распишите на пальцах =)
- <<ПОМОГИТЕ! НАПИСАТЬ ПРОГРАММУ НА СИ ИЛИ ПАСКАЛЕ КОТОРАЯ ВЫВОДИТЬ СУММУ ЦИФР ЧИСЛА ОТ 1 ДО N
А трёхзначных чисел, в десятичной записи которых нет чётных цифр, кстати сказать, всего в общей сложности 250 !