PAT(Basic Level) 1022 D进制的A+B (20)
2014-03-07 16:41
513 查看
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:
输出样例:
1033
注意:有一个case是0和0,如果不注意的话,这个测试点就很难过去。
代码如下:
别人的代码,可以参考一下:
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:
123 456 8
输出样例:
1033
注意:有一个case是0和0,如果不注意的话,这个测试点就很难过去。
代码如下:
#include<iostream> #include<string> #include<vector> #include<map> using namespace std; map<int, char> m; string transform(long long n,int d) { string s=""; if (n == 0) return s = "0"; for (int x = n; x != 0; x = x / d) { s = m[x%d] + s; } return s; } int main() { #ifdef ONLINE_JUDGE #else freopen("D:\\in.txt", "r", stdin); freopen("D:\\out.txt", "w", stdout); #endif long long a, b, d; for (int i = 0; i < 10; i++) { m[i] = '0' + i; } while (cin >> a >> b >> d) { if (d == 10) cout << a + b << endl; else cout << transform(a + b, d) << endl; } return 0; }
别人的代码,可以参考一下:
#include<cstdio> #define MAX 1000 using namespace std; int main(int argc,char *argv[]) { long long a,b,d; long long i,temp,sum; int array[MAX]; scanf("%lld%lld%lld",&a,&b,&d); sum=a+b; i=0; if(sum==0) printf("0"); else { while(sum) { array[i]=sum%d; sum=sum/d; i++; } i--; for(;i>=0;i--) printf("%d",array[i]); } printf("\n"); return 0; }
相关文章推荐
- PAT BASIC LEVEL 1022. D进制的A+B (20)
- PAT (Basic Level) Practise (中文)1022. D进制的A+B (20) C语言
- PAT (Basic Level) Practise (中文) 1022. D进制的A+B (20)
- PAT (Basic Level) Practise (中文)1022. D进制的A+B (20)
- PAT Basic Level 1022. D进制的A+B (20)
- PAT (Basic Level) Practise (中文)1022. D进制的A+B (20)
- PAT(basic level) 1022 D进制的A+B(20)
- PAT (Basic Level) Practise (中文)1022. D进制的A+B (20)
- PAT (Basic Level) Practise (中文)- 1022. D进制的A+B (20)
- PAT1022 BASIC:D进制的A+B (20)
- PAT乙级(Basic Level)真题-1022 挖掘机技术哪家强(20)
- PAT Basic 1022. D进制的A+B (20)(C语言实现)
- PAT (Basic Level)1022. D进制的A+B
- PAT(BasicLevel):D进制的A+B (20)
- PATBasic——1022. D进制的A+B (20)
- Pat(Basic Level)Practice--1022(D进制的A+B)
- PAT(Basic Level)_1022_D进制的A+B
- PAT (Basic Level) Practise:1022. D进制的A+B
- (PAT-Basic)1022. D进制的A+B (20)
- PAT (Basic Level) Practise (中文)1013. 数素数 (20)