加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

大数相乘

发布时间:2020-12-14 02:41:28 所属栏目:大数据 来源:网络整理
导读:span style="font-size:18px;"#include stdlib.h#include stdio.h#include string.hint main(){ int i,j; char num1[100]={0}; char num2[100]={0}; gets(num1); gets(num2); int number1[100]; int number2[100]; int result[201]={0}; for(i=0;istrlen(num
<span style="font-size:18px;">#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main()
{
    int i,j;
    char num1[100]={0};
    char num2[100]={0};
    gets(num1);
    gets(num2);
    int  number1[100];
    int  number2[100];
    int  result[201]={0};
    for(i=0;i<strlen(num1)/2;i++)
    {
        char tmp = num1[i];
        num1[i] = num1[strlen(num1)-1-i];
        num1[strlen(num1)-1-i] = tmp;
    }
    for(i=0;i<strlen(num2)/2;i++)
    {
        char tmp = num2[i];
        num2[i] = num2[strlen(num2)-1-i];
        num2[strlen(num2)-1-i] = tmp;
     }
     for(i=0;i<strlen(num1);i++)
    {
        number1[i]=num1[i]-'0';
    }
    for(i=0;i<strlen(num2);i++)
    {
         number2[i]=num2[i]-'0';
     }
    for(i=0;i<strlen(num1);i++)
    {
        for(j=0;j<strlen(num2);j++)
        {
             result[i+j] = result[i+j] + number1[i]*number2[j];
         }
     }

    for(i=0;i<200;i++)
    {
         result[i+1]=result[i+1]+result[i]/10;
         result[i] = result[i]%10;
     }
    for(i=200;i>-1;i--)
    {
        if(result[i]>0)
            break;
    }
    if(i==-1)
    {
         printf("n%d",0);
     }
    for(j=i;j>-1;j--)
    {
        printf("%d",result[j]);
     }
    return 0;
}</span>
<span style="font-size:18px;">
 </span><span style="font-size:32px;color:#cc0000;">求算n!</span><span style="font-size:18px;">
#include<iostream>
#define MAX 1000
using namespace std;

int main(void)
{
    int n;
    while(scanf("%d",&n)==1&&n>=0)
    {
        int i,j;
        int a[MAX];      //存数运算结果
        int p,h;           //p存储当前结果的位数,h为进位
        a[1]=1;
        p=1;  
        for(i=2;i<=n;i++)   //循环与2,3,4.....n相乘
        {
            for(j=1,h=0;j<=p;j++)    //让a[]的每位与i相乘
            {
                a[j]=a[j]*i+h;
                h=a[j]/10;
                a[j]=a[j]%10;
            }
            while(h>0)         //如果h不为0
            {
                a[j]=h%10;
                h=h/10;
                j++;
            }
            p=j-1;            //将当前的位数赋给p
        }
        for(i=p;i>=2;i--)
        {
            printf("%d",a[i]);
        }
        printf("%dn",a[i]);
    }
    return 0;
}
</span>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读