Упражнения на Java: читает n цифр (задано), выбранных от 0 до 9, и печатает количество комбинаций
Java Basic: упражнение 228 с решением
Напишите программу на Java, которая читает n цифр (задано), выбранных от 0 до 9, и печатает количество комбинаций, в которых сумма цифр равна другому заданному числу (ам). Не используйте одни и те же цифры в комбинации.
Например, комбинации, где n = 3 и s = 6, следующие:
1 + 2 + 3 = 6
0 + 1 + 5 = 6
0 + 2 + 4 = 6
Входные данные :
Два целых числа как число комбинаций и их сумма по одному пробелу в строке. Введите 0 0 для выхода.
Иллюстрированная презентация:
Пример решения:
Java-код:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
System.out.println("Input number of combinations and sum (separated by a space in a line):");
int n = stdIn.nextInt();
int s = stdIn.nextInt();
int c1 = comnum(0, n, s,0);
System.out.println("Number of combinations:");
System.out.println(c1);
}
public static int comnum(int i, int n, int s,int p) {
if(s == p && n == 0) {
return 1;
}
if(i >= 10) {
return 0;
}
if(n < 0) {
return 0;
}
if(p > s) {
return 0;
}
int c1 = comnum(i+1,n-1,s,p+i);
int c2 = comnum(i+1,n,s,p);
return c1+c2;
}
}
Пример вывода:
Введите число комбинаций и сумму (разделенные пробелом в строке): 3 6 Количество комбинаций: 3
Блок - схема:
Редактор кода Java:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу на Java, которая читает текст (только буквы и пробелы) и печатает два слова. Первое - это слово, которое чаще всего встречается в тексте. Второе - это слово с максимальным количеством букв.
Далее: Напишите программу на Java, которая считывает две соседние стороны и диагональ параллелограмма и проверяет, является ли параллелограмм прямоугольником или ромбом.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования