• POJ.grids.2980


    题目链接:http://bailian.openjudge.cn/practice/2980

    解题思路:先将对应位相乘的积累加,最后再来处理进位问题;如 835*49;

    先做 835*9;

    得到 i  2            1           0

             72           27          45

    再做 835*4

    得到 i   3                   2                  1               0

              32                  12                20             0

    再把对应位上的累加起来

    得到 i   3                   2                    1               0

              3 2                84                   47            45

    最后再考虑进位的问题

    得到 i 4        3                   2                    1               0

              4        0                  9                     1             5

    这样就得到了835*49;

    注意:一个数的第i位和另一个数的第j位相乘所得的数,一定要放在积的第i+j位上;

            两个长度都为len的数相乘所得的积的位数不会超过2*len;

    反思:还是不够熟练,好好学,改了好多次。

    #include<stdio.h>
    #include<string.h>
    #define max 500
    int main()
    {
        int i,j;
        int len1,len2,len;
        int a[max],b[max],c[max];
        char str1[max],str2[max];
    
        while(~scanf("%s %s",&str1,&str2))
        {
            memset(a,0,sizeof(a));
            memset(b,0,sizeof(b));
            memset(c,0,sizeof(c));
            len1=strlen(str1);
            len2=strlen(str2);
            for(i=0;i<len1;i++)
            {
                a[i]=str1[len1-i-1]-'0';
            }
            for(i=0;i<len2;i++)
            {
                b[i]=str2[len2-i-1]-'0';
            }
    
            for(i=0;i<len2;i++)
            {
                for(j=0;j<len1;j++)
                c[i+j]+=b[i]*a[j];
            }
            len=i+j;
    
            for(i=0;i<len;i++)
            {
                if(c[i]>=10)
                {
                    c[i+1]+=c[i]/10;
                    c[i]=c[i]%10;
                }
            }
    
            for(i=len;(c[i]==0)&&(i>=0);i--);
                for(j=i;j>=0;j--)
                printf("%d",c[j]);
                printf("
    ");
    
        }
    
    }
    

      

  • 相关阅读:
    软工网络15团队作业4——Alpha阶段敏捷冲刺
    (转) linux目录结构详细介绍
    ActiveMQ使用记录
    .NET4.5中WCF中默认生成的basicHttpsBinding的研究
    StackExchange.Redis的使用
    微信/QQ机器人的实现
    EntityFramework中的datetime2异常的解决
    在Web API中使用Swagger-UI开源组件(一个深坑的解决)
    (转)使用Migrations更新数据库结构(Code First )
    WebApi中帮助页Description的中文显示
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4114660.html
Copyright © 2020-2023  润新知