zoukankan      html  css  js  c++  java
  • 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("
    ");
    
        }
    
    }
    

      

  • 相关阅读:
    让你的网站在移动端健步如飞
    select元素javascript常用操作 转
    网站CSS写在html里面的好处
    Javascript 严格模式详解
    mac下网页中文字体优化
    js作用域相关知识总结
    【待填坑】 undefined和not defined的区别
    【待填坑】js构造函数和内置对象的区别
    echarts入门1【柱状图/饼图】
    echarts在miniUI和ajax下动态渲染数据
  • 原文地址:https://www.cnblogs.com/wuyuewoniu/p/4114660.html
Copyright © 2011-2022 走看看