1023. Have Fun with Numbers (20)
2015-02-08 23:16
316 查看
3个点不过!!!!因为加法写错了!!!
点击打开链接
#include <cstdio>
#include <cstring>
struct bign{
int len;
int x[21];
bign(){
len=0;
for(int i=0;i<21;i++){
x[i]=0;
}
}
};
bign change(char c[]){
bign big;
for(int i=strlen(c)-1;i>=0;i--){
big.x[big.len++]=c[i]-'0';
}
return big;
}
//错误的加法
//bign add(bign a,bign b){
// int len=a.len<b.len?b.len:a.len;
// bign c;
// int jin=0;
// for(int i=0;i<len;i++){
// int tmp=a.x[i]+b.x[i]+jin;
// if(tmp>10){
// c.x[c.len++]=tmp%10;
// jin=1;
// }else{
// c.x[c.len++]=tmp;
// jin=0;
// }
// }
// if(jin==1){
// c.x[c.len++]=jin;
// }
// return c;
//}
bign add(bign a,bign b){
int len=a.len<b.len?b.len:a.len;
bign c;
int jin=0;
for(int i=0;i<len;i++){
int tmp=a.x[i]+b.x[i]+jin;
c.x[c.len++]=tmp%10;
jin=tmp/10;
}
if(jin!=0){
c.x[c.len++]=jin;
}
return c;
}
void hashh(int h[],bign a){
for(int i=0;i<a.len;i++){
h[a.x[i]]++;
}
}
int main(){
freopen("in.txt","r",stdin);
char c[100];
gets(c);
bign a=change(c);
bign b=add(a,a);
if(a.len!=b.len){
printf("No\n");
}else{
int ha[10];
memset(ha,0,sizeof(ha));
hashh(ha,a);
int hb[10];
memset(hb,0,sizeof(hb));
hashh(hb,b);
int flag=1;
for(int i=0;i<10;i++){
if(ha[i]!=hb[i]){
flag=0;
break;
}
}
if(flag){
printf("Yes\n");
}else{
printf("No\n");
}
}
for(int i=b.len-1;i>=0;i--){
printf("%d",b.x[i]);
}
printf("\n");
return 0;
}
点击打开链接
#include <cstdio>
#include <cstring>
struct bign{
int len;
int x[21];
bign(){
len=0;
for(int i=0;i<21;i++){
x[i]=0;
}
}
};
bign change(char c[]){
bign big;
for(int i=strlen(c)-1;i>=0;i--){
big.x[big.len++]=c[i]-'0';
}
return big;
}
//错误的加法
//bign add(bign a,bign b){
// int len=a.len<b.len?b.len:a.len;
// bign c;
// int jin=0;
// for(int i=0;i<len;i++){
// int tmp=a.x[i]+b.x[i]+jin;
// if(tmp>10){
// c.x[c.len++]=tmp%10;
// jin=1;
// }else{
// c.x[c.len++]=tmp;
// jin=0;
// }
// }
// if(jin==1){
// c.x[c.len++]=jin;
// }
// return c;
//}
bign add(bign a,bign b){
int len=a.len<b.len?b.len:a.len;
bign c;
int jin=0;
for(int i=0;i<len;i++){
int tmp=a.x[i]+b.x[i]+jin;
c.x[c.len++]=tmp%10;
jin=tmp/10;
}
if(jin!=0){
c.x[c.len++]=jin;
}
return c;
}
void hashh(int h[],bign a){
for(int i=0;i<a.len;i++){
h[a.x[i]]++;
}
}
int main(){
freopen("in.txt","r",stdin);
char c[100];
gets(c);
bign a=change(c);
bign b=add(a,a);
if(a.len!=b.len){
printf("No\n");
}else{
int ha[10];
memset(ha,0,sizeof(ha));
hashh(ha,a);
int hb[10];
memset(hb,0,sizeof(hb));
hashh(hb,b);
int flag=1;
for(int i=0;i<10;i++){
if(ha[i]!=hb[i]){
flag=0;
break;
}
}
if(flag){
printf("Yes\n");
}else{
printf("No\n");
}
}
for(int i=b.len-1;i>=0;i--){
printf("%d",b.x[i]);
}
printf("\n");
return 0;
}
相关文章推荐
- Python实现Pat 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- 【PAT甲级】1023. Have Fun with Numbers (20)
- 浙江大学PAT_甲级_1023. Have Fun with Numbers (20)
- PAT (Advanced) 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- 1023 Have Fun with Numbers (20)(vector<int> di,di读取string里的数字)
- 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20) @ PAT (Advanced Level) Practise
- 1023. Have Fun with Numbers (20)
- PAT1023. Have Fun with Numbers (20)
- PAT甲级 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- PAT (Advanced Level) Practise 1023. Have Fun with Numbers (20)
- 1023. Have Fun with Numbers (20)
- PAT 1023. Have Fun with Numbers (20) 【题目开始没理解好,后来折腾半天才搞懂】
- PAT 1023. Have Fun with Numbers (20)
- 【PAT】1023. Have Fun with Numbers (20)