zoukankan      html  css  js  c++  java
  • 大数处理 _______整数乘法_________1042_____________________________

    //最恶心人的大数问题...我怕要让你看到我更恶心!!!!!!!!!!!!!!!
    #include<stdio.h>
    #include<string.h>
    int i,j,m,n,b,c,a[11111];
    int main()
    {
        while(scanf("%d",&n)!=EOF)
        {
            memset(a,0,sizeof(a));
            m=0;
            a[0]=1;
            for(i=1;i<=n;i++)       //思想就是用两个for循环   第一个for循环  一个一个向下传送需要相乘的数字
            {
                for(j=0;j<=m;j++)//第二个for循环就是让一个数组单位之中储存一个小于100000的数字.(试试更大的数字)
                {
                    a[j]=a[j]*i;   //在这里开始积攒直到积攒到不少于100000就去开辟一个新的数组小单元
                    if(j>0&&a[j-1]>=10000)//   j>0是用来防止随机数捣鬼.....
                    {
                        a[j]=a[j]+a[j-1]/10000; //  在开辟好新空间之后
                        a[j-1]=a[j-1]%10000;     //这一次  a[j]为0.  然后进入这个循环  开始进阶
                    }                             //然后出去  进阶完成之后 其值一定小于10000.所以自动跳回
                    if(a[m]>=10000)   //在这里  让m的值变大然后由上一个for循环开辟新空间
                        m++;
                }
            }
            printf("%d",a[m]);
            for(i=m-1;i>=0;i--)
            {
                printf("%04d",a[i]);  //因为是四位数 是一个 小单位.所以    如果是三个数的话,前面的一定是0所以控制一下格式
            }
            printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    eclipse lua
    eclipse新建python项Project interpreter not specified
    Laravel Debugbar
    Java中枚举类型简单学习
    SG函数题目
    关于解决博弈论问题的SG函数
    三种典型的博弈论问题
    Java I/O 对象序列化
    Java I/O 文件加锁,压缩
    Java I/O NIO学习
  • 原文地址:https://www.cnblogs.com/A-FM/p/5028913.html
Copyright © 2011-2022 走看看