int?sum?=?0;
for?(int?i?=?1;?i?<=?10000;?i++)?{
String?n?=?""?+?(long)?i?*?i?*?i;//?轉為字符串
if?(n.endsWith(""?+?i))?{//?判斷字符串結尾是否是i本身
sum++;
}
}
System.out.println(sum);
}
妳的循環是1-10-100-1000-1001-1002-...-10000,建議打個斷點,debug壹下看看流程
因該改為
public?static?void?main(String[]?args)?{int?i,?sum?=?0;
for?(i?=?1;?i?<=?9;?i++)?{
if?(Math.pow(i,?3)?%?10?==?i)?{
System.out.println(i);
sum++;
}
}
for?(i?=?10;?i?<=?99;?i++)?{
if?(Math.pow(i,?3)?%?100?==?i)?{
System.out.println(i);
sum++;
}
}
for?(i?=?100;?i?<=?999;?i++)?{
if?(Math.pow(i,?3)?%?1000?==?i)?{
System.out.println(i);
sum++;
}
}
for?(i?=?1000;?i?<=?9999;?i++)?{
if?(Math.pow(i,?3)?%?10000?==?i)?{
System.out.println(i);
sum++;
}
}
System.out.println();
System.out.println(sum);
}
如果不用Math.pow(i,3),改用i*i*i
默認結果是int型,int範圍是±21億,1000^3就是10億了,早就超出範圍了,所以只有3個