Runaround Numbers
来源:互联网 发布:mac电脑必备软件 编辑:程序博客网 时间:2024/06/06 20:14
题意:给定页数M,求比M大的最小Runaround数。Runaround数有以下特征:
- 每位上的数字都不会与其他位重复,也不会有0的出现
- 如果某位上的数字为A,则下一步的动作就是从这一位开始往后数A个数(数到最后跳回首位)。
- 如果从这个数的第一位开始进行上述操作,并且再次回到首位的时候刚好每位数字访问一遍
- 满足上述条件的数就称为Runaround数
解题思路:
- 读入M
- 从M开始往后遍历
- 遍历过程中用一个数组存储遍历到的数的每一位,然后按照Runaround数的条件进行模拟,直到找到第一个Runaround数
代码:
/*ID: zc.rene1LANG: CPROG: runround */#include<stdio.h>#include<stdlib.h>#include<string.h>int digits[2][9];int bit_map[9];int Check(unsigned long num){ int len = 0; int temp_bit = 0; int i, next_index; memset(digits, 0, 2*9*sizeof(int)); memset(bit_map, 0, 9*sizeof(int)); //get the digits while (num != 0) {temp_bit = num%10;if ((temp_bit==0) || (bit_map[temp_bit-1]==1)){ return 0;}num /= 10;digits[0][len++] = temp_bit;bit_map[temp_bit-1] = 1; } //reverse the order for (i=0; i<len/2; i++) {temp_bit = digits[0][i];digits[0][i] = digits[0][len-i-1];digits[0][len-i-1] = temp_bit; } //test if runround next_index = (0 + digits[0][0])%len; for (i=0; i<len; i++) {digits[1][next_index] = 1;next_index = (next_index+digits[0][next_index])%len; } for (i=0; i<len; i++) {if (digits[1][i] != 1){ return 0;} } return 1;}int main(void){ FILE *fin, *fout; unsigned long M; fin = fopen("runround.in", "r"); fout = fopen("runround.out", "w"); fscanf(fin, "%lu", &M); while (1) {M++;if (Check(M)){ fprintf(fout, "%lu\n", M); break;} } return 0;}
- Runaround Numbers
- Runaround Numbers
- Runaround Numbers
- Runaround Numbers
- 【其他】【USACO】Runaround Numbers
- Section 2.2 Runaround Numbers
- 2.2Runaround Numbers
- usaco training-Runaround Numbers
- Runaround Numbers循环数
- USACO / Runaround Numbers(穷举)
- USACO Runaround Numbers
- usaco Runaround Numbers
- [USACO]Runaround Numbers
- usaco2.23Runaround Numbers
- USACO:Runaround Numbers
- USACO-Runaround Numbers
- USACO2.2.3 Runaround Numbers
- USACO Runaround Numbers
- 项目需求收集过程的点滴
- 关于‘Borland license... not vali…
- Delphi的测试工具DUnit
- 第一篇、用Python开发Adroid程序--…
- 第二篇、用Python开发Adroid程序--…
- Runaround Numbers
- 几个很有用的英语练习资源
- 在ubuntu下 添加图标
- 在Delphi中使用JSon
- 自动安装msi文件包
- MySQL数据库服务无法远程访问的解…
- sql server一个怪异问题
- Mysql的Select查询语句性能检测工…
- 2014雅虎校园招聘:二维字符数组查找Yahoo!(软件开发岗)