题目1026:又一版 A+B-----------------------进制转换一定要用 do-while来进行辗转相除

#include<iostream>
 using namespace std;

int main()
{
    long long a,b;
    int m;     
    while(cin>>m)
    {
        if (m==0) return 0;
        
        int s[50],i=0;
        cin>>a>>b;
        a=a+b;
        
        do{           // 用while进行循环能出正确的结果,但是不能AC;  
            s[i++]= a%m;
            a=a/m;
        }while(a!=0);    
        for (int j=i-1;j>=0;j--)
         cout<<s[j];
        cout<<endl;
    }
    return 0;
}

WHILE 和DO-WHILE的不同

一、while语句的一般形式为:
while(表达式)语句
其中表达式是循环条件,语句为循环体。
while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。

二、do-while语句的一般形式为:
do
语句
while(表达式);
这个循环与while循环的不同在于:它先执行循环中的语句,然后再判断表达式是否为真, 如果为真则继续循环;如果为假, 则终止循环。因此, do-while循环至少要执行一次循环语句
使用while语句应注意以下几点:
1、while语句中的表达式一般是关系表达或逻辑表达式,只要表达式的值为真(非0)即可继续循环。
2、循环体如包括有一个以上的语句,则必须用{}括起来,组成复合语句。
原文地址:https://www.cnblogs.com/jianrenguo/p/6538066.html