ltx_zero

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

《算法笔记》3.5小节——入门模拟->进制转换

A题

注意,这个里面因为两个都是满int,所以会出现爆int,不仅仅sum用longlong,a和b也需要,pat B1022里面就不会爆

(实测a和b在int时候题目会报错,因为int和long貌似不能直接转换成long long,只保留底字符什么的)

还有就是,如果不使用do while,在初始状态和0的情况下会无输出,一定要强制执行一次,或者初始count直接从0占位0开始

#include<stdio.h>
int main()
{
    int m;
    long long a,b;
    while(scanf("%d",&m) && m!=0)
    {
        scanf("%lld %lld",&a,&b);
        long long sum=a+b;
        int num[10000];
        int count=0;
        do
        {
            num[count++]=sum%m;
            sum=sum/m;
        }while(sum!=0);
        for(int i=count-1;i>=0;i--)
        {
            printf("%d",num[i]);
        }
        printf("\n");
    }
    return 0;
}
View Code

 

posted on 2019-08-19 20:12  ltx_zero  阅读(97)  评论(0编辑  收藏  举报