?public?static?void?factor(int?m)
????{
???? int[]?A?=?{1};
???? for(int?i?=?1;?i?<?m;?i++)
???? {
???? A?=?helper(A,?i+1);
???? }
???? for(int?i?=?A.length?-?1;?i?>=?0;?i--)
???? {
???? System.out.print(A[i]);
???? }
????}
????public?static?int[]?helper(int[]?s,?int?a)//計算一個數組s乘以m的值,比如120?*?6的值,s為[0,?2,?1],m為6
????{
???? int?i,temp?=?0;
???? int[]?arr?=?new?int[(s[s.length?-?1]?*?a?+?"").length()?-?1?+?s.length];//本次計算的結果長度
???? for(i?=?0;?i?<?s.length;?i++)
???? {
???? arr[i]?=?(s[i]?*?a?+?temp)?%?10;//加上前一次的十進位數
???? if(s[i]?*?a?+?temp?>=?10)
???? temp?=?(s[i]?*?a?+?temp)?/?10;
???? else
???? temp?=?0;
???? }
???? if(temp?!=?0)//計算出最高位的數超出一位,要進行增加位數
???? {
???? for(int?j?=?0;?j?<?arr.length?-?s.length;?j++)//本次計算數比前次多的位數
???? {
???? arr[i+j]=temp?%?10;//把多出的其中一位數存放在新數組中,最后返回至result[]中,i代表目前數組的最高數
???? if(temp?>=?10)
???? temp?/=?10;//放在本循環(huán)的j++循環(huán)止中進行
???? else
???? temp?=?0;
???? }
???? }
???? return?arr;
????}
添加回答
舉報
0/150
提交
取消