Найдите все
трехзначные числа, сумма цифр которых равна n.
Вход. Одно число n (0
≤ n ≤ 28).
Выход. В первой строке выведите количество найденных трехзначных
чисел. В следующих строках выведите сами трехзначные числа в порядке возрастания.
Пример
входа |
Пример
выхода |
3 |
6 102 111 120 201 210 300 |
циклы
Переберем цифры сотен, десятков и
единиц и найдем все трехзначные числа, сумма цифр которых равна n.
Читаем входное
значение n.
scanf("%d",&n);
res = 0;
Перебираем цифры i, j, k трехзначного числа и подсчитываем
количество троек (i, j, k),
сумма которых равна n. Число сотен i не
может равняться нулю, поэтому 1 ≤ i
≤ 9.
for(i = 1; i <= 9; i++)
for(j = 0; j <= 9; j++)
for(k = 0; k <= 9; k++)
if (i + j + k
== n) res++;
Выводим количество найденных
трехзначных чисел.
printf("%d\n",res);
Снова перебираем цифры сотен,
десятков и единиц и выводим все трехзначные числа, сумма цифр которых равна n.
for(i = 1; i <= 9; i++)
for(j = 0; j <= 9; j++)
for(k = 0; k <= 9; k++)
if (i + j + k
== n) printf("%d%d%d\n",i,j,k);
Java реализация
import java.util.*;
public class Main
{
public static void
main(String[] args)
{
Scanner con = new
Scanner(System.in);
int n = con.nextInt();
int i, j, k, res = 0;
for(i = 1;
i <= 9; i++)
for(j = 0;
j <= 9; j++)
for(k = 0;
k <= 9; k++)
if (i + j + k == n) res++;
System.out.println(res);
for(i = 1;
i <= 9; i++)
for(j = 0;
j <= 9; j++)
for(k = 0;
k <= 9; k++)
if (i + j + k == n) System.out.printf("%d%d%d\n",i,j,k);
con.close();
}
}
Python реализация
n = int(input())
res = 0;
for i in range(1,10):
for j in range(0, 10):
for k in range(0, 10):
if (i + j
+ k == n): res = res + 1;
print(res);
for i in range(1,10):
for j in range(0, 10):
for k in range(0, 10):
if (i + j
+ k == n): print(str(i) + str(j) + str(k));