题目:判断一个数是否能若干个完全平方数(比如 1, 4, 9, 16, …)相加得到,如果没有则输出"NA",有则输出。比如17=1 +16,题目理解出不能有重复的平方数,因为所有的数都可以用1+1+1+...+1得到,但是题目有"NA"可以输出。
但是当输入值为8时,输出了两个4,即8=4+4.暂时没解决。
import java.util.Scanner;
public class allSquare {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int num=sc.nextInt(),num_x=1;//num_x是减去最大平方数后的值
int []mm=new int[num];
int flag=0;//用来判断是否有多个1
StringBuilder str=new StringBuilder();
while(num_x!=0){
int a=(int)Math.sqrt(num);
num_x=num-a*a;
if(a*a==1){
flag++;
if(flag==2) {
System.out.print("NA");
return;
}
}
if(a*a==num){