栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1016 Numbers That Count

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1016 Numbers That Count

#include<iostream>#include<string.h>#include<stdlib.h>using namespace std;void R(char* n,char* t){int i,j;int time[10]={0};  //记录n中各个数字出现的次数for(i=0;n[i];i++)time[ n[i]-'0' ]++;for(i=0,j=0;i<10;i++){if(time[i]){if(time[i]<10)  //数字i出现次数<10,即占1位{t[j++]=time[i]+'0';t[j++]=i+'0';}else    //数字i出现次数>=10,即占2位{t[j++]=time[i]/10+'0';t[j++]=time[i]%10+'0';t[j++]=i+'0';}}}t[j]='';return;}int main(int i,int j){char n[16][85];    //n[0]为原串,n[1~15]分别为n连续压缩15次的数字串while(cin>>n[0] && n[0][0]!='-'){bool flag1=false;    //属性1,n is self-inventoryingint flag2=0;         //属性2,n is self-inventorying after j steps,顺便记录jint flag3=0;         //属性3,n is enters an inventory loop of length k,顺便记录kfor(i=1;i<=15;i++)R(n[i-1],n[i]);if(!strcmp(n[0],n[1]))  //属性1,n压缩1次就是其本身flag1=true;if(!flag1){for(j=1;j<15;j++)if(!strcmp(n[j],n[j+1]))  //属性2, n压缩j次后的数字串n[j]具有属性1{flag2=j;break;}if(!flag2){for(j=1;j<=15;j++)  //属性3,两两枚举各次压缩的数字串,注意循环间隔>=2{for(i=0;i<=j-2;i++){if(!strcmp(n[j],n[i])){flag3=j-i;break;}}if(flag3)break;}}}if(flag1)cout<<n[0]<<" is self-inventorying"<<endl;else if(flag2)cout<<n[0]<<" is self-inventorying after "<<flag2<<" steps"<<endl;else if(flag3)cout<<n[0]<<" enters an inventory loop of length "<<flag3<<endl;elsecout<<n[0]<<" can not be classified after 15 iterations"<<endl;}return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/372332.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号