我正在尝试解决这个问题,看起来很简单this,但我无法理解约束 - 规则,它说:
如果数字用双手表示,则首先给出较大的数字
规则编号2我无法理解,例如,如果它说3,我有3,2 + 1,1 + 2(这不是因为它重复),如果它说6我们有6,5 + 1,4 + 2,3 + 3,4 + 4 + 1 + 5但是正确的输出是3,有人可以指导我这个问题吗? 7为2,8为2,9为1,10为1。
这是我的代码:
import java.util.Scanner;
class j1 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int tot = 5;
int n = sc.nextInt();
int sum = 0;
int count = 1;
for (int i = 1; i <= tot; i++) {
for (int j = 1; j <= tot; j++) {
sum = i + j;
if (sum == n) {
System.out.println(i);
System.out.println(j);
count++;
}
}
}
System.out.println(count);
sc.close();
}
}
答案 0 :(得分:2)
很简单 - 如果你打算使用双手(2只手)给出数字,那么你首先需要给出包含总数的更大数字 -
例如对于7(4 + 3 OR 5 + 2),当用2只手代表时 - 首先给出4个!
7(3 + 4,2 + 5)的其他选项无效,因为它会使我们首先列出违反规则#2的较小数字
答案 1 :(得分:1)
秒针的数量必须始终小于或等于第一只手的数量。我相信下面的代码会有用。
import java.util.Scanner;
class j1 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
int tot = 5;
int n = sc.nextInt();
int sum = 0;
int count = 1;
for (int i = 1; i <= tot; i++) {
for (int j = 1; j <= i; j++) {
sum = i + j;
if (sum == n) {
System.out.println(i);
System.out.println(j);
count++;
}
}
}
System.out.println(count);
sc.close();
}
}