codecamp

2.2.3 RUNAROUND NUMBERS 循环数

PS:最近工作比较忙,所以把以前在学校做acm的时候写的一些解题报告发出来


http://acm.sdibt.edu.cn/JudgeOnline/problem.php?id=2327
题目大意:(如题)
输入输出:(如题)
解题思路:从开始数后一个数往后枚举,然后判断其是不是循环数,如果是就输出退出。
 

  1. void transfer() //转换函数,将整数的每一位数提取出来  
  2. {   
  3.     int i;   
  4.     n=0;   
  5.     while(tmp>0)   
  6.     {   
  7.         i=tmp%10;   
  8.         tmp/=10;   
  9.         tmpstr[n]=i;   
  10.         n++;   
  11.     }   
  12.     for(i=0;i<=n;i++)   
  13.         str[i]=tmpstr[n-i];   
  14. }   
  15.      
  16. void check()   
  17. {   
  18.     int i,j,k;   
  19.     for(i=0;i<10;i++)   
  20.         mrk[i]=0;   
  21.     for(i=1;i<=n;i++)   
  22.         mrk[str[i]]++;   
  23.     for(i=0;i<=9;i++)   
  24.     {   
  25.         if(mrk[i]>1) //数里面有位数的数字重复  
  26.         {   
  27.             flag=false;   
  28.             return;   
  29.         }   
  30.     }   
  31.     j=1;   
  32.     for(i=0;i<10;i++)   
  33.         mrk[i]=0;   
  34.     for(i=1;i<=n;i++) //每位数判断  
  35.     {   
  36.         k=str[j];   
  37.         j=(str[j]+j)%n; //循环  
  38.         if(!j)j+=n;   
  39.         if(mrk[j]!=0||str[j]==k) //不满足循环数的条件或者已经判断过了,往后走k步出现的数和k相同  
  40.         {   
  41.             flag=false;   
  42.             return;   
  43.         }   
  44.         mrk[j]=1; //标记判断过了  
  45.     }   
  46.     if(j==1)   
  47.     {   
  48.         flag=true;   
  49.         return;   
  50.     }   
  51. }   


2.2.1 PREFACE NUMBERING 序言页码
2.2.4 PARTY LAMPS 派对灯
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }