def baseN(num, b):
return ((num == 0) and "0") or (baseN(num // b, b).lstrip("0") + "0123456789abcdefghijklmnopqrstuvwxyz"[num % b])
while True:
try:
a = input()
if a != "0":
jinzhi, num1, num2 = map(int, a.split())
print(baseN((num1 + num2), jinzhi))
except:
break
#include<iostream> #include<string> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; int main() { long long a, b; int m; scanf("%d", &m); scanf("%lld %lld", &a, &b); a += b; string str; if (a == 0) str = "0"; else { while (a) { str.push_back(char(a % m + '0')); a /= m; } reverse(str.begin(), str.end()); } cout << str << endl; return 0; }
#include<stdio.h> int main (){//the shorter,the better. int A,B,m,i,r[100];long t; for(;~scanf("%d",&m)&&m&&~scanf("%d%d",&A,&B);){ for(*r=t=A+B,i=0;t;r[i++]=t%m,t/=m); for(i<=0?:--i;printf(i==0?"%d\n":"%d",r[i])&&i;--i); } }
#include <stdio.h> int ans[70]; int m; long a, b, c; int main() { while (scanf("%d", &m) != EOF && m != 0) { scanf("%ld %ld", &a, &b); c = a + b; int num = 0; do { ans[num++] = c % m; c /= m; }while(c != 0); for (int i = num - 1; i >= 0; i--) printf("%d", ans[i]); printf("\n"); } return 0; }
#include<cstdio> #include<iostream> #include<vector> using namespace std; int main(){ unsigned m,a,b,sum; while(scanf("%d%d%d",&m,&a,&b)!=EOF){ if(m==0) break; sum=a+b; if(sum==0) cout<<0<<endl;//是不是忘记了,,, vector<int> binary; while(sum!=0){ binary.push_back(sum%m); sum/=m; } for(int i=binary.size()-1;i>=0;--i){ printf("%d",binary[i]); } printf("\n"); } return 0; }
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <vector> using namespace std; vector<int> myVector; void convert(long long ret, int m) { if (ret == 0) { myVector.push_back(0); } while (ret) { myVector.push_back(ret % m); ret /= m; } for (int i = myVector.size() - 1; i >= 0; i--) { printf("%d", myVector[i]); } cout << endl; } int main() { int m; long long A, B; while (cin >> m) { if (m == 0) { break; } cin >> A >> B; convert(A + B, m); myVector.clear(); } return EXIT_SUCCESS; }
#include<stdio.h> int main() { int a,b,m,w[100]={0},num,i; long int c;//可能超出int 所以用long修饰c while(scanf("%d",&m)!=EOF) { if(m==0) break; scanf("%d%d",&a,&b); c=a+b;num=0; if(c==0) { printf("0");continue; } while(c!=0) { w[num]=c%m; c/=m; num++; } for(i=num-1;i>=0;i--) printf("%d",w[i]); printf("\n"); } return 0; }
/* 案例给的数加起来应该是超过int的了,不过我直接用long long了,先存到栈里面,然后顺序输出即可 */ #include <bits/stdc++.h> using namespace std; int main(){ long long m,a,b; while(cin>>m>>a>>b){ if(m==0) break; long long c = a+b; stack<int> res; do{ res.push(c%m); c/=m; }while(c!=0); while(!res.empty()){ cout<<res.top(); res.pop(); } cout<<endl; } }
#include <iostream> using namespace std; int main() { unsigned int scale = 0, a = 0, b = 0; while(cin>>scale && 0 != scale && cin >> a >> b) { unsigned int c = a + b, nums[32] = { 0 }, cnt = c ? 0 : 1; while (c) { nums[cnt++] = c % scale; c = c / scale; } while (cnt--) { cout << nums[cnt]; } cout << endl; } return 0; }
//就是要注意数的范围,为了避免溢出,应该用unsigned int来存储a和b的和 #include<iostream> using namespace std; int main(){ int m,a,b; while(cin>>m>>a>>b){ if(m==0) break; unsigned int c=a+b,out[100],count=0;//注意c用unsigned来存储,否则大数加***得到负值 if(c==0) cout<<"0"<<endl; else{ while(c>0){ out[count++]=c%m; c/=m; } for(int i=count-1;i>=0;i--) cout<<out[i]; cout<<endl; } } }
def conversion(num,m): #进制转换,最多转换三十六进制吧 baseChar = "0123456789abcdefghijklmnopqrstuvwxyz" tempNum = num if num==0: return 0 result = [] while tempNum>0: tempNum,b = divmod(tempNum,m) result.append(baseChar[b]) return "".join(result[::-1]) while True: try: digitList = list(map(int,input().split())) if digitList[0]==0: break print(conversion(digitList[1]+digitList[2],digitList[0])) except Exception: break
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); long m = scan.nextLong(); if (m == 0) return; long A = scan.nextLong(), B = scan.nextLong(); long C = A + B; if (C == 0) { System.out.print(0); return; } String res = ""; while (C > 0) { res = (C % m) + res; C /= m; } System.out.print(res); } }
//一定要用do while 防止a=0,b=0时跳过输出。 #include<stdio.h> int main() { long long a, b; int m; while (scanf("%d",&m) != EOF&&m) { scanf("%lld%lld", &a, &b); a = a + b; int AB[30],i = 0; do{ AB[i] = a % m; a /= m; i++; } while (a); i--; while (i >= 0) { printf("%d", AB[i]); i--; } printf("\n"); } return 0; }
#include <iostream> using namespace std; typedef long long LL; const int maxn = 100; int main() { LL a, b; LL m; int arr[maxn]; while (cin >> m >> a >> b) { if (m == 0) break; LL sum = a + b; if (sum == 0) cout << 0 << endl; else { int index = 0; while (sum != 0) { arr[index++] = sum % m; sum /= m; } for (int i = index-1; i >= 0; i--) { cout << arr[i]; } cout << endl; } } return 0; }
#include <stdio.h> #define N 1000 int Devide(unsigned n, unsigned m, unsigned buf[N]) { int i; for(i=0 ;i<N; i++) buf[i]=0; i=0; while(n>=m) { buf[i]=n%m; n/=m; i++; } buf[i]=n; return i;//返回最高位的位置 } int main() { unsigned a, b; unsigned m, buf[N]; int i, pos; while(scanf("%d", &m)!=EOF) { if(m==0) break; scanf("%d %d", &a, &b); pos=Devide(a+b, m, buf); for(i=pos; i>=0; i--) printf("%d", buf[i]); printf("\n"); } return 0; }
#include <iostream> #include <vector> using namespace std; int main(){ int m; long long A,B; while(cin >> m >> A >> B){ if(m == 0) break; if(A == 0 && B == 0){ cout << 0 << endl; break; } long long num = A + B, res = 0, remain = 0; //10进制转m进制 vector<int> vec; while(num > 0){ remain = num % m; vec.push_back(remain); num /= m; } for(int i = vec.size()-1; i >= 0; i--){ cout << vec[i]; } cout << endl; } return 0; }
import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int m = scanner.nextInt(); BigInteger a = scanner.nextBigInteger(); BigInteger b = scanner.nextBigInteger(); System.out.println(a.add(b).toString(m)); } }