1023. Have Fun with Numbers (20)
2017-02-03 19:09
357 查看
题目:https://www.patest.cn/contests/pat-a-practise/1023
参考代码:
参考代码:
#include<stdio.h> #include<string.h> struct bign{ int d[21]; int len; bign(){ memset(d,0,sizeof(d)); len=0; } }; bign change(char str[]){ bign a; a.len=strlen(str); for(int i=0;i<a.len;i++){ a.d[i]=str[a.len-i-1]-'0'; } return a; } bign mul(bign a,int b){ bign c; int carry=0; for(int i=0;i<a.len;i++){ int temp=a.d[i]*b+carry; c.d[c.len++]=temp%10; carry=temp/10; } while(carry!=0){ c.d[c.len++]=carry%10; carry/=10; } return c; } bool Judge(bign a,bign b){ if(a.len!=b.len) return false; int count[10]={0}; for(int i=0;i<a.len;i++){ count[a.d[i]]++; } for(int i=0;i<a.len;i++){ count[b.d[i]]--; } for(int i=0;i<10;i++){ if(count[i]!=0) return false; } return true; } void print(bign a){ for(int i=a.len-1;i>=0;i--){ printf("%d",a.d[i]); } } int main(){ char str[21]; scanf("%s",str); bign a=change(str); bign b=mul(a,2); if(Judge(a,b)) printf("Yes\n"); else printf("No\n"); print(b); }个人代码(有瑕疵):
#include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> #include<algorithm> using namespace std; int main() { int a[21],b[21],t=0,pos=0,c[10]={0},flag=1; char s[21]; gets(s); int len=strlen(s); for(int i=0;i<len;i++){ a[i]=s[len-i-1]-'0'; } for(int i=0;i<len;i++){ int temp=a[i]*2+t; t=temp/10; b[pos++]=temp%10; } if(pos!=len) flag=0; for(int i=0;i<len;i++){ c[a[i]]++; c[b[i]]--; } for(int i=0;i<10;i++){ if(c[i]!=0) flag=0; } if(flag==1){ printf("Yes\n"); for(int i=len-1;i>=0;i--){ printf("%d",b[i]); } }else{ printf("No\n"); for(int i=len-1;i>=0;i--){ printf("%d",b[i]); } } system("pause"); }
相关文章推荐
- JS的单引号,双引号问题
- 1051. Pop Sequence (25)PAT甲级
- C++ cout输出,如何set精度
- Tkinter控件加载图片
- 完成管理平台的bootstrap界面布局
- processing 游戏编程实例
- 3.3 1!到n!的和
- iptables.sh 初始化防火墙配置
- Spring4笔记6--Spring与AOP
- Android中APK直接通过JNI访问驱动
- 双叉积——拉格朗日公式证明
- 高通camera vendor层logic
- git常用操作之查看改动日志和进行版本切换(四)
- 彻底理解javascript的回调函数
- LeetCode 61. Rotate List
- 如何用visual studio 2010 新建一个C程序项目
- 如何通过giihub下载软件
- 160 - 3 Afkayas.2
- Nginx反向代理、CORS、JSONP等跨域请求解决方法总结
- repo sync error: cannot initialize work tree