使用unsigned int,不需要使用string记录和。
注意do while 和while的区别。
这里使用while不能通过测试。

#include <iostream>
#include <string.h>
#include <stdio.h>

using namespace std;

int main(){
    int m;
    unsigned int sum, a, b;
    while (cin >> m) {
        if(m == 0) return 0;
        int z[50];
        int num = 0;
        cin >> a >> b;
        sum = a + b;
//        if(sum == 0){
//            cout << 0 << endl;
//            break;
//        } 
//        while(sum != 0){
//            z[num++] = sum % m;
//            sum = sum / m;
//        }
        do{
            z[num++]=sum%m;
            sum=sum/m;
        }while(sum!=0);
        for(int i = num - 1; i >= 0; i--){
            printf("%d", z[i]);
        }
        printf("\n");
    }
    return 0; 
}