作业帮 > 综合 > 作业

用C语言编写个程序,输入一个2-7为的整数,然后判断是否是一个runaround数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/29 04:42:21
用C语言编写个程序,输入一个2-7为的整数,然后判断是否是一个runaround数
一个N位的runaround数的特点:
(1)该整数有N位,每一位数字在1~9之间.
(2)这些数字构成了一个序列,序列中每位数字的值指明了下一个序列数所在的位置.例如,假设当前数字为2,则往右走2步,即到达下一个序列数.
(3)序列起始于该整数最左边的数字,并且在遍历该整数的所有数字各一次后,又回到了起始位置.
(4)该整数的各位数字各不相同,没有重复.
例如,对于整数81362,可以通过以下步骤来验证它是否是一个runaround数.
(1)从最左边的数字(即8)开始:8 1 3 6 2.
(2)往右走8步,停在6上面(注意到走到右边界时要返回到最左边):8 1 3 6 2.
(3)往右走6步,停在2上面:8 1 3 6 2.
(4)往右走2步,停在1上面:8 1 3 6 2.
(5)往右走1步,停在3上面:8 1 3 6 2.
(6)往右走3步,停在8上面,即回到了起始位置:8 1 3 6 2.
int iIsRunAround(int nNum)
{
int nCount = 0;//位数
int nStep = 0;
int nCur = nNum;
int arrNumber[10];//各位数,个位到最高位
int arrRevert[10];//各位数,最高位到个位
int arrVisited[10];//是否已访问标识
int j = 0;
int i = 0;
//取各位数,存入数组
while(nCur > 0)
{
arrNumber[nCount] = nCur%10;
arrVisited[nCount] = 0;
nCur = nCur/10;
nCount++;
}