PAT——1022 D进制的A+B
2017-09-22 12:06
134 查看
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。 输入格式: 输入在一行中依次给出3个整数A、B和D。 输出格式: 输出A+B的D进制数。 输入样例: 123 456 8 输出样例: 1103
#include <iostream> #include <string.h> using namespace std; int main() { int aa[100]; long long bb[100]; memset(aa,0,sizeof(aa)); memset(bb,0,sizeof(bb)); long long a,b,c,d; cin>>a>>b>>d; c=a+b; // cout<<c<<endl; if(c==0) { cout<<0; return 0; } else { long long sum=1; int j=0; while(1) { //cout<<sum<<" "; bb[j]=sum; sum*=d; j++; if(sum>c) { j--; break; } } //cout<<endl; //for(int i=0;i<j;i++) //{ // cout<<bb[i]<<" "; // } // cout<<endl; while(c>=d&&j) { //cout<<c<<" "; if(c>=bb[j]) { aa[j]=c/bb[j]; //cout<<aa[j]<<" "; c%=bb[j]; j--; } if(c<bb[j]) { aa[j]=0; j--; } } //cout<<endl; aa[0]=c; int x; for(int i=99;i>=0;i--) { if(aa[i]) { x=i; break; } } for(int i=x;i>=0;i--) { cout<<aa[i]; } return 0; } }
相关文章推荐
- PAT 乙级 1022.D进制的A+B(20)
- PAT(Basic Level) 1022 D进制的A+B (20)
- PAT Basic Level 1022. D进制的A+B (20)
- 编程题目: PAT 1022. D进制的A+B (20)
- PAT 乙级 1022. D进制的A+B (20) Java版
- PAT (Basic Level) Practise (中文)1022. D进制的A+B (20)
- PAT乙级1022. D进制的A+B (20)
- [PAT乙级]1022. D进制的A+B (20)
- 1022. D进制的A+B (20) PAT乙级
- (PAT-Basic)1022. D进制的A+B (20)
- PAT乙题1022. D进制的A+B (20)
- PAT 1022. D进制的A+B java实现
- PAT_乙级 1022 D进制的A+B
- 【PAT】B1022. D进制的A+B
- PAT 乙级 1022. D进制的A+B
- PAT---B1022. D进制的A+B (20)
- PAT-B 1022. D进制的A+B
- PAT1022 D进制的A+B (20)
- PAT (Basic Level) Practise (中文) 1022. D进制的A+B (20)
- 1022. D进制的A+B (20)-PAT乙级真题