算法题1 大数字运算(输出时不显示前面多余的0)
生活随笔
收集整理的這篇文章主要介紹了
算法题1 大数字运算(输出时不显示前面多余的0)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
//直接上代碼:先別著急算階乘,先進(jìn)行大數(shù)的計(jì)算//列如 3784*23,利用數(shù)組進(jìn)行計(jì)算。 new int[6],放入03784,分別乘以23
| 0| 3 |7 |8 |4|*23
|0 | 69| 161|184| 92|
//去留
| 8 | 7 | 0 | 3 | 2 |
//最后為87032
//上代碼:
int x=3784;
int n=23;
int[] ints = new int[5];
ints[ints.length-1]=4;
ints[ints.length-2]=8;
ints[ints.length-3]=7;
ints[ints.length-4]=3;
for( int i=0;i<ints.length;i++){ints[i]=ints[i]*n;
}
//此處從后面進(jìn)行移位操作,不可以從前面。
for(int i=length-1;i>0;i--){int[i-1]+=int[i]/10;int[i]=int[i]%10;
}
//之后循環(huán)遍歷ints便可得到結(jié)果。///一次類(lèi)推,進(jìn)行階乘的計(jì)算。
public class T1 {public static void main(String[] args) {//計(jì)算50!int n = 50;int length=100;getFactorial(50,100);}static String getFactorial(int n,int length) {String result="";int[] ints = new int[length];ints[ints.length-1]=1;for (int i = 1; i <= n; i++) {ints=demo(ints,i); }int j = 0 ;Boolean flag=false;for (int i = 0; i < ints.length; i++) {if(ints[i]>0||flag) {j=i;flag=true;System.out.print(ints[i]);}}return null;}static int[] demo( int[] ints , int num) {for (int i = 0; i < ints.length; i++) {ints[i]*=num;}for (int i = ints.length-1;i>0;i--) {ints[i-1]+=ints[i]/10;ints[i]=ints[i]%10;}return ints;}
}
總結(jié)
以上是生活随笔為你收集整理的算法题1 大数字运算(输出时不显示前面多余的0)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: PROTEUS串口仿真遇到的BUG(转载
- 下一篇: 利用栈将中缀表达式转化成后缀表达式