POJ 1016 Numbers That Count 不难,但要注意细…
2018-06-17 23:56:36来源:未知 阅读 ()
题意是将一串数字转换成另一种形式。比如5553141转换成2个1,1个3,1个4,3个5,即21131435。1000000000000转换成12011。数字的个数是可能超过9个的。n个m,m是从小到大排序。
输出的结果又四种情况,建议判断的时候就按照题目的顺序进行判断,否则可能出错。第一种情况是进行一次变换后和原来的数字相同;第二种是进行j次后和原来数字相同;第三种是变换过程中形成了循环,比如70:
70是2循环,又最后3组数字可判断出;第四种情况是超过15次变换仍然找不出规律。
#include <iostream> #include <cstdio> #include <cstring> #define MAX 85 using namespace std; char n[MAX]; int a[10]; int main() { freopen("in.txt","r",stdin); while(1) { char str[16][MAX]= {0}; //先全部变换,将原始数字和变换后的都保存下来 memset(n,0,sizeof(n)); //初始化 scanf("%s",n); if(n[0]=='-') break; strcpy(str[0],n); for(int i=0; i<15; i++) //15次变换 { memset(a,0,sizeof(a)); //初始化 for(int j=0; j<10; j++) //查找0~9每个数字,并保存至数字a[j] for(int k=0; k<strlen(str[i]); k++) { if(str[i][k]==j+'0') a[j]++; } for(int j=0,k=0; j<10; j++) if(a[j]>=10) //这里的细节需要注意一下,个数大于或等于10,需要保存三位数 { str[i+1][k]=a[j]/10+'0'; str[i+1][k+1]=a[j]%10+'0'; str[i+1][k+2]=j+'0'; k+=3; } else if(a[j]>0 && a[j]<10) { str[i+1][k]=a[j]+'0'; str[i+1][k+1]=j+'0'; k+=2; } } bool flag=true; if(strcmp(str[0],str[1])==0) { printf("%s is self-inventorying\n",str[0]); flag=false; } if(flag) for(int i=1; i<=15; i++) if(strcmp(str[i],str[i+1])==0) { printf("%s is self-inventorying after %d steps\n",str[0],i); flag=false; break; } if(flag) for(int i=13; i>=0; i--) if(strcmp(str[15],str[i])==0) { printf("%s enters an inventory loop of length %d\n",str[0],15-i); flag=false; break; } if(flag) printf("%s can not be classified after 15 iterations\n",str[0]); } return 0; }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- POJ-3278 2020-04-01
- Asteroids!_poj2225 2020-02-09
- poj-1753题题解思路 2020-01-26
- POJ1852 2019-11-11
- POJ2431 优先队列+贪心 - biaobiao88 2019-11-03
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash