刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

5.循环数
若一个n位的数字串满足下述条件,则称其是循环数(cyclic):将这个数字串视为整数(可能带有前导0),并用任意一个 1 到 n 之间(包含1和n)的整数去乘它时, 会得到一个将原数字串首尾相接后,再在某处断开而得到的新数字串所对应的整数。例如,数字 142857 是循环数,因为: 142857 *1 = 142857 142857 *2 = 285714 142857 *3 = 428571 142857 *4 = 571428 142857 *5 = 714285 142857 *6 = 857142。
请写一个程序判断给定的数是否是循环数。
注意:在此题中,输入数字串允许带前导0,且前导0不能被忽略,例如“01”是两位数字串,而“1”是一位数字串。但将数字串转化为整数做乘法运算或比较运算时,可以忽略前导0。
时间限制:10000
内存限制:65536
输入
一行,一个长度在 2 到 60 位之间的数字串。
输出
一个整数,若输入的数字串是循环数,输出1,否则输出0。
样例输入
```
142857
```
样例输出
```
1
```

使用微信搜索喵呜刷题,轻松应对考试!

答案:

解析:

【喵呜刷题小喵解析】本题要求判断一个数字串是否为循环数。循环数的定义是:将这个数字串视为整数(可能带有前导0),并用任意一个 1 到 n 之间(包含1和n)的整数去乘它时,会得到一个将原数字串首尾相接后,再在某处断开而得到的新数字串所对应的整数。本题需要输入一个长度在2到60之间的数字串,并输出一个整数,若输入的数字串是循环数,输出1,否则输出0。Python程序可以通过定义函数is_cyclic(num_str)来判断数字串是否为循环数。首先,将数字串转换为整数,然后遍历1到n之间的所有整数,计算乘积,将乘积转换为字符串,判断乘积字符串的长度是否为n*i,以及乘积字符串的前n个字符是否等于数字串重复i次后,再在某个位置断开得到的新字符串。如果任何一个条件不满足,则返回0,否则返回1。在主程序中,输入数字串,调用is_cyclic(num_str)函数,输出判断结果。
创作类型:
原创

本文链接:5.循环数若一个n位的数字串满足下述条件,则称其是循环数(cyclic):将这个数字串视为整数(可能

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share