Java 循环
题目
成绩: 5 / 折扣: 0.8
题面描述:
大贤者福尔最近迷上了数学,他研究发现有些神奇的数似乎具有某种魔力。于是他开始研究自然数,发现某个范围内的一些数,经过一定规则运算后的和,等于另一个数按同样规则计算后的值。具体来说,给定不大于NN的整数a, b, c, d (1 \le a \le b \le c \le d \le N)a,b,c,d(1≤a≤b≤c≤d≤N),可能存在关系ax+bx+cx=dxa
x
+b
x
+c
x
=d
x
。福尔想知道在给定的范围NN中,有多少数能够满足这种关系?
输入:
输入数据有若干行,每行包括两个整数x, Nx,N, 2 \le x \le 3, 1 \le N \le 1002≤x≤3,1≤N≤100。
输出:
对每组测试数据,先输出样例编号Case c:,c为当前测试样例的组号,从1开始。随后按照a, b, ca,b,c的自然序依次输出结果。若不存在满足条件的数,则输出No such numbers.。
示例输入:
3 4
3 6
示例输出:
Case 1: No such numbers.
Case 2: 33+43+53=63
代码
// Author :///
// Time : 2020/3/10 10:58
// File : Week_5.java
// Describe :
// IDE : IntelliJ IDEA
import java.util.Scanner;
public class Week_5 {
public static int IsContain(int c, int N, int sum, int x) {// c表示当前d的取值 N,x同题目 sum表示a b c计算的幂之
int index = 0;
for (int i = c; i <= N; i++) {
if (sum == Math.pow(i, x)) {
index = i;
break;
}
}
return index;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int count = 1;
while (in.hasNextInt()) {
System.out.println("Case " + count + ":");
count++;
int x = in.nextInt();
int N = in.nextInt();
int d = 0;
boolean falg = false;
for (int a = 1; a <= N; a++) {
for (int b = a; b <= N; b++) {
for (int c = b; c <= N; c++) {
int sum = (int) (Math.pow(a, x) + Math.pow(b, x) + Math.pow(c, x));
d = IsContain(c, N, sum, x);
if (d != 0) {
falg = true;
System.out.println(a + "^" + x + "+" + b + "^" + x + "+" + c + "^" + x + "=" + d + "^" + x);
}
}
}
}
if (!falg) System.out.println("No such numbers.");
}
in.close();
}
}
来源:CSDN
作者:八块腹肌撕裂者
链接:https://blog.csdn.net/weixin_44135909/article/details/104771798