我用java程序做了这道题,正确的结果应该是36。为什么我这样写结果是12,比如
int?sum?=?0;
为了什么?(int?我?=?1;?我?& lt=?10000;?i++)?{
字符串?n?=?""?+?(龙)?我?*?我?*?我;//?转换为字符串
如果?(n.endsWith("?+?我))?{//?判断字符串的结尾是否是I本身。
sum++;
}
}
system . out . println(sum);
}调试循环是1-10-100-1001-1002-...-10000.建议做一个断点。
因为应该改成
公共?静电?作废?main(String[]?args)?{
int?我,?sum?=?0;
为了什么?(我?=?1;?我?& lt=?9;?i++)?{
如果?(Math.pow(我,?3)?%?10?==?我)?{
system . out . println(I);
sum++;
}
}
为了什么?(我?=?10;?我?& lt=?99;?i++)?{
如果?(Math.pow(我,?3)?%?100?==?我)?{
system . out . println(I);
sum++;
}
}
为了什么?(我?=?100;?我?& lt=?999;?i++)?{
如果?(Math.pow(我,?3)?%?1000?==?我)?{
system . out . println(I);
sum++;
}
}
为了什么?(我?=?1000;?我?& lt=?9999;?i++)?{
如果?(Math.pow(我,?3)?%?10000?==?我)?{
system . out . println(I);
sum++;
}
}
system . out . println();
system . out . println(sum);
}如果不用Math.pow(i,3),用i*i*i代替。
默认结果是int类型,int的范围是21亿,1000 3是1亿,已经超出范围了,所以只有三个。