我用java程序做了这道题,正确的结果应该是36。为什么我这样写结果是12,比如

公共?静电?作废?main(String[]?args)?{

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亿,已经超出范围了,所以只有三个。