第十三届蓝桥杯模拟赛第三期(第三题)

【问题描述】

10 是一个非常特殊的数,它可以表示成两个非负整数的平方和,10 = 3 * 3 + 1 * 1。
9 也是同样特殊的数,它可以表示成 9 = 3 * 3 + 0 * 0。
请问,在 1 到 2021 中有多少个这样的数?
请注意,有的数有多种表示方法,例如 25 = 5 * 5 + 0 * 0 = 3 * 3 + 4 * 4,在算答案时只算一次。

答案:624

public class C {
    public static void main(String[] args){
    int count=0;
    int arr[] =new int[2022]; 
    for (int i = 0; i < 2021; i++) {
		for (int j = 0; j < 2021; j++) {
			int sum=j*j+i*i;
			if(sum<=2021) arr[sum]=1;
				}
		}
    for(int i=1;i<=2021;i++)
		if (arr[i]==1)
			count++;
    System.out.println(count);
}
}

你可能感兴趣的:(蓝桥杯(模拟赛/真题),java,蓝桥杯)