题目1026:又一版 A+B

题目1026:又一版 A+B

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:17699

解决:4772

题目描述:

输入两个不超过整型定义的非负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

.题目分析

  对于做这种水题,最重要的是要走心,千万不要忘记0,0测试样例,再次感慨一下while do和do whie,终于感受到了强大的区别.

#include
#include
using namespace std;
int num[40];
int main()
{
	ifstream in;
	in.open("1.txt");
	unsigned int m,a,b;
	long long int sum;
	while(in>>m && m!=0)
	{
		in>>a>>b;
		sum=a+b;	
		int index=0;
		if(sum==0)	//要考虑0的这种情况 
		{
			cout<<"0"<=0;--i)
		cout<

(2)比较强大的do while
#include  
int main()  
 {  
     long long a,b;  
     int m,i;  
     while(scanf("%d",&m)!=EOF){  
         if(m==0) break;  
         scanf("%lld%lld",&a,&b);  
         a=a+b;  
         int ans[50],size=0;  
         do{                           //循环至少执行一次,不需要特殊处理  
             ans[size++]=a%m;  
             a/=m;  
         }while(a!=0);  
         for(i=size-1;i>=0;i--){  
             printf("%d",ans[i]);  
         }  
         printf("\n");  
     }  
     return 0;  
 }  



你可能感兴趣的:(九度OJ)