當前位置:編程學習大全網 - 編程軟體 - 對於這個藍橋杯立方尾不變題我用java程序做的,正確結果應該是36,為什麽我這樣寫結果就是12,如

對於這個藍橋杯立方尾不變題我用java程序做的,正確結果應該是36,為什麽我這樣寫結果就是12,如

public?static?void?main(String[]?args)?{

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個

  • 上一篇:十部值得看十遍的電影
  • 下一篇:編程代碼中tr是什麽意思
  • copyright 2024編程學習大全網