zoukankan      html  css  js  c++  java
  • 大数学习笔记

    大数加法
    void add(char a[],char b[],char s[])//a被加数,b加数,s和
    {
        int i,j,k,up,x,y,z,l;
        char *c;
        if (strlen(a)>strlen(b))
         l=strlen(a)+2; 
        else l=strlen(b)+2;
        c=(char *) malloc(l*sizeof(char));
        i=strlen(a)-1;
        j=strlen(b)-1;
        k=0;up=0;
        while(i>=0||j>=0)
    	{
    		if(i<0) x='0'; else x=a[i];
    		if(j<0) y='0'; else y=b[j];
    		z=x-'0'+y-'0';
    		if(up) z+=1;
    		if(z>9) {up=1;z%=10;}
            else up=0;
    		c[k++]=z+'0';
    		i--;j--;
    	}
        if(up) c[k++]='1';
        i=0;
        c[k]='';
        for(k-=1;k>=0;k--)
            s[i++]=c[k];
        s[i]='';
    }



    大数阶乘

    #include <cstdio>
    #include <iostream>
    #include <cstring>
    using namespace std ;
    
    int a[500000] ;
    
    int main()
    {
        int n ;
        while(scanf("%d",&n)!=EOF)
        {
            memset(a,0,sizeof(a)) ;
            a[0] = 1 ;
            for(int i=2 ;i<=n; i++)
            {
                int c = 0 ;
                for(int j = 0 ;j<50000 ;j++)
                {
                    int s = a[j]*i+c ;
                    a[j] = s%10 ;
                    c = s/10 ;
                }
            }
            int i ;
            for(i = 49999 ;i>=0 ;i--)
            {
                if(a[i])
                    break ;
            }
            for(int j = i ;j>=0 ;j--)
            {
                printf("%d",a[j]) ;
            }
            printf("
    ") ;
        }
        return 0 ;
    }
    


  • 相关阅读:
    leetcode297
    leetcode4
    leetcode23
    leetcode72
    leetcode239
    leetcode42
    leetcode128
    leetcode998
    SAP MM GR-based IV, 无GR不能IV?
    小科普:机器学习中的粒子群优化算法!
  • 原文地址:https://www.cnblogs.com/emoji/p/4436846.html
Copyright © 2011-2022 走看看