zoukankan      html  css  js  c++  java
  • [hdu]1230 火星A+B

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1230

    解题思路:

         刚开始是做法是直接把a跟b转化成十进制数,加完后再转化,最后一看是25位,数据太大存不下,只能用数组做了,用两个数组做把个位的放在数组的第一位,这样就不会考虑高位放在第一位,进位的问题了,然后把两个数组相加,每一位除以prime[i]看是否大于一,大于一就要有进位,进位为/prime[i],该位进位后剩下%prime[i];输出 时候判断去两个数组的最大长度那一位判断是否大于0,!具体实现看代码:

    AC代码:

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    char s1[505],s2[505];
    int c[505],d[505];
    int prime[30]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113};
    int main()
    {
        int len1,len2,i,j,temp;
        while(scanf("%s%s",s1,s2))
        {
            if(strcmp(s1,"0")==0&&strcmp(s2,"0")==0) break;
            memset(c,0,sizeof(c));
            memset(d,0,sizeof(d));
            len1=strlen(s1);len2=strlen(s2);
            temp=1;
            for(i=len1-1,j=0;i>=0;i--)
            {
                if(s1[i]==',')
                {
                    j++;temp=1;
                }
                else
                {
                    c[j]+=(temp*(s1[i]-'0'));
                    temp*=10;
                }
            }len1=j+1;
            temp=1;
            for(i=len2-1,j=0;i>=0;i--)
            {
                if(s2[i]==',')
                {
                    j++;temp=1;
                }
                else
                {
                    d[j]+=(temp*(s2[i]-'0'));
                    temp*=10;
                }
            }len2=j+1;
            if(len1<len2) len1=len2;
            for(i=0;i<len1;i++)
            {
                c[i]+=d[i];
                if(c[i]/prime[i]!=0)
                {
                    c[i+1]+=(c[i]/prime[i]);
                    c[i]%=prime[i];
                }
            }
            for(i=(c[len1]==0?len1-1:len1);i>=0;i--)
            {
                printf("%d%c",c[i],i==0?'
    ':',');
            }
        }
        return 0;
    }
  • 相关阅读:
    TCP三次握手和四次挥手
    shell脚本进阶
    shell脚本编程基础
    centos6/7通用查看系统版本
    OSI与TCP/IP网络模型分层
    RAID基础知识总结
    yum的初步了解与使用
    Red Hat Enterprise Linux 官方正式版镜像下载
    MYSQL的基本使用,以及错误代码的意思
    人生第一次研读MFC截图工具的笔记心得
  • 原文地址:https://www.cnblogs.com/gaojupeng/p/4485009.html
Copyright © 2011-2022 走看看