九度oj 题目1026:又一版 A+B 【ZJU2008考研机试题1】

题目1026:又一版 A+B

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:5488

解决:1482

题目描述:

输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。

输入:
输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
当m为0时输入结束。
输出:
输出格式:每个测试用例的输出占一行,输出A+B的m进制数。
样例输入:
8 1300 48
2 1 7
0
样例输出:
2504
1000
来源:
2008年浙江大学计算机及软件工程研究生机试真题
答疑:
解题遇到问题?分享解题心得?讨论本题请访问: http://t.jobdu.com/thread-7750-1-1.html

  1.注意:要想表示2^32-1必须用unsigned int。  int型-2^31~2^31-1,因为带符号。 


     32位机器long就是32位。


  2.unsigned int 输入可用%u或者%d,输出必须用%u, 若输出用%d不能表示出unsigned的最大范围。


  3.%o表示已8进制形式输出;%x表示以16进制小写字母输出(%X表示以16进制大写字母输出),


     %.2e保留两位小数 以科学计数法输出浮点数short型整数的输出格式:%hd;


/*
      辗转相除do-while型求一个整数的各位。
*/
#include <stdio.h>
#define MAX 3
int main()
{
	unsigned int a,b,ans[40];
	int w,cnt,i;
        //freopen("G:\\in.txt","r",stdin);
	while(scanf("%d%d%d",&w,&a,&b)!=EOF){
		if(w==0) break;
		unsigned int c=a+b;
		cnt=0;
		do{  //辗转相除法。
			ans[cnt++]=c%w;
			c=c/w;
		}while(c!=0);
		for(i=cnt-1;i>=0;i--)
			printf("%d",ans[i]);
		printf("\n");
	}
	return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值