06:循环数_06:循环数-程序员宅基地

技术标签: noi题库 1.13编程基础之综合应用  C++  noi题库  

总时间限制: 1000ms 内存限制: 65536kB
描述
若一个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。

输入
一行,一个长度在 2 到 60 位之间的数字串。
输出
一个整数,若输入的数字串是循环数,输出1,否则输出0。
样例输入
142857

样例输出
1


对于这道题目,我的思路是这样的:
用字符串st读入,然后将其一位一位地存到一个数组中,用高精度乘法(long long类型不够)做完后,再存到另一个字符串s中,然后将前一个字符串st首尾相接,用find函数在st中查找s,如果找不到,就输出“0”,并退出,找到了,就接着做。


源代码如下:

#include<bits/stdc++.h>//万能头文件 
using namespace std; 
int len,a[300]={
   0},b[300]={
   0},t=0,f; 
string st,s; 
int main() 
{ 
  cin>>st; 
  len=st.size(); 
  for(int i=0;i<len;i++) 
     a[i]=st[i]-'0'; //将st一位一位存入数组a中 
  st=st+st;//将st首尾相接 
  for(int j=1;j<=len;j++) 
  { 
     for(int k=0;k<len;k++) 
      b[k]=a[k];//将a数组存入b中 
     for(int p=len-1;p>=0;p--){ 
      b[p]=b[p]*j+t; 
      t=b[p]/10; 
      b[p]=b[p]%10; 
    }//高精度乘法 
    s="";//将字符串s置空 
    for(int q=0;q<len;q++) 
    s=s+(char)('0'+b[q]);//将b数组转换到字符串s中 
    f=st.find(s,0); 
    if(f==-1)//即st中没有s 
   { 
      cout<<'0'; 
      return 0; 
    }//输入“0”并停止运行 
  } 
    cout<<'1'; 
    return 0; 
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36006682/article/details/60468720

智能推荐

python 基础_pio.write_image-程序员宅基地

文章浏览阅读2.4k次,点赞6次,收藏19次。一、Python 安装一、Python 应用场景1.Web应用开发2.自动化运维3.科学计算4.桌面软件5.服务器软件6.游戏7.人工智能8.数据分析二、Python3 开发环境搭建1、Python2​ 在大多数Linux系统上都已经有集成好了 Python2 开发环境,不需要安装就可以执行Python代码了①.验证 Python2 环境是否搭建好:Ctrl + Alt + t 打开终端输入命令$ python②.退出 Python2 环境命令:exit() 或 Ctrl+_pio.write_image

STM32 CubeIDE 使用 CMSIS-DAP烧录 (方法1--修改配置文件)_cmsis-dap怎么用-程序员宅基地

文章浏览阅读2.8k次,点赞29次,收藏40次。因为它是开源的,避免使用J-Link的Clone提醒,以及不同质量的盗版ST-Link的各种问题,以及同时调试多个项目时需要多个不同型号的调试器。CubeIDE目前只支持ST-Link、J-Link, 我们需要一些操作才能让它支持CMSIS-DAP。使用CMSIS-DAP需要.cfg后缀的文件,一般使用ST-Link调试器不会生成此文件。新工程配置完成后,如下图,暂时是没有Debug资源的。保存后,Debug下方,出现了刚才保存的cfg文件。1、生成调试器的CFG文件。2、打开Debug配置。_cmsis-dap怎么用

根据冯诺依曼原理 计算机分为哪五大部件,①冯·诺依曼计算机结构分为哪五大部分?...-程序员宅基地

文章浏览阅读8.8k次。输入设备、运算器、控制器、存储器、输出设备。冯.诺依曼计算机的工作原理,“存储程序控制”原理的基本内容:1、采用二进制形式表示数据和指令。2、将程序(数据和指令序列)预先存放在主存储器中(程序存储),使计算机在工作时能够自动高速地从存储器中取出指令,并加以执行(程序控制)。3、由运算器、控制器、存储器、输入设备、输出设备五大基本部件组成计算机硬件体系结构。扩展资料根据冯诺依曼体系结构构成的计算机,..._冯诺依曼计算机体系结构五大组成

广域网(WAN)--网络大典_wan atm和sonet协议-程序员宅基地

文章浏览阅读1.1k次。 广域网(WAN)是一种覆盖较大范围的计算机网络,其涉及整个世界网络。通常 WAN 连接多重较小网络,如局域网(LAN)或区域网(MAN)。世界最流行的 WAN 是因特网。因特网内部的某些部分也属于广域网。广域网可以由私人拥有也可以向服务器供应商租用,其中包含公用网络(用户共享)。  为了保密性和安全通信,组织通常使用依靠于公共交换数据网络(PSDN)的虚拟专用网络(VPN)。在 _wan atm和sonet协议

OpenGL ES3.1使用计算着色器(Compute Shader)_opengl es计算着色器-程序员宅基地

文章浏览阅读5.6k次,点赞7次,收藏11次。OpenGL ES3.1使用计算着色器(Compute Shader)1.基本介绍OpenGL ES从3.1版本开始支持计算着色器 工作模型有全局工作组和本地工作组,全局工作组包含由三维的本地工作组组成,本地工作组也由三个维度组成。本地工作组三个维度大小分别为:local_size_x,local_..._opengl es计算着色器

如何一年内做到Python总监,秘诀竟然是这样的_怎么才能做到会写python程序-程序员宅基地

文章浏览阅读353次。Python 是一门优雅而又不失实用的语言,它语法简单很容易学会,又具有极高的可读性和灵活性。在知乎上 Python 是受关注最多的编程语言。很遗憾在我初学的时候没有知乎这样的平台提供这么多的资源,甚至全靠自己摸索。虽然各类观点俯拾皆是,但是有时候却会让人迷失了方向。本次 Live 我将带来个人对 Python 开发工程师如何入门、提高和进阶的一些见解,希望通过我个人的工作经历、学习方法,给不同阶..._怎么才能做到会写python程序

随便推点

ant design vue a-checkbox 超出换行_a-checkbox-group 自动换行-程序员宅基地

文章浏览阅读301次。a-checkbox 超出换行_a-checkbox-group 自动换行

【中级——高级迈不过去?】Android高级工程师进阶学习——Android推送技术解析(系列篇14-程序员宅基地

文章浏览阅读403次,点赞4次,收藏4次。先说短连接, 短连接是通讯双方有数据交互时就建立一个连接, 数据发送完成后,则断开此连接.长连接就是大家建立连接之后, 不主动断开. 双方互相发送数据, 发完了也不主动断开连接, 之后有需要发送的数据就继续通过这个连接发送.TCP连接在默认的情况下就是所谓的长连接, 也就是说连接双方都不主动关闭连接, 这个连接就应该一直存在.下面是辛苦给大家整理的学习路线本文已被CODING开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》收录。

调试经验——使用Matlab绘制f(x)=sin(x)/x的函数图形_matlab sinx/x-程序员宅基地

文章浏览阅读1.7w次,点赞3次,收藏13次。当x趋近于0时,sin(x)/x趋近于1,这是一个重要的极限。如果用Matlab绘制出函数图形,则一目了然。x=linspace(-0.01,0.01,1000);y=sin(x)./x;plot(x,y)图形:那么,当x趋近于正无穷时,函数极限又应该是多少呢?因为sin(x)是有界的,而1/x当x趋近于无穷大时极限为0,因此,根据定理:有界_matlab sinx/x

ROS源码阅读---局部路径规划之DWAPlannerROS分析-程序员宅基地

文章浏览阅读1.1k次,点赞5次,收藏12次。1 体系结构(1)主要成员base_local_planner::LocalPlannerUtil planner_util_; 用来存储运动控制参数以及costmap2d、tf等,会被传入dp_costmap_2d::Costmap2DROS* costmap_ros_;base_local_planner::OdometryHelperRos odom_helper_; 用来辅助获取o..._dwaplannerros

Cocos游戏源码有奖征集活动重磅来袭!-程序员宅基地

文章浏览阅读20次。风。风暴来临,扁舟破风。Cocos引擎中文站举办的游戏源码有奖征集活动将掀起最强风暴。藉此机会,各路游戏开发英豪摩拳擦掌,正欲一显身手,马到成功!峰。峰峦矗立,王者登峰。真正的游戏开发高手将与全国的开发者较量,直待夺取“最强”名号,会当凌绝顶,一览众山小,煮酒论英雄!锋。锋芒初露,剑走偏锋。谁说奇思妙想没有用,有才华的人不甘平庸。就算生活匆忙,工作繁重,但只要有一个机会,就应该不鸣则已,今日惊鸿!...

matlab计算机械臂素的,机械臂动力学——动力学建模-程序员宅基地

文章浏览阅读5.1k次,点赞9次,收藏89次。一、动力学基础概念基本动力学模型建模方法牛顿-欧拉法拉格朗日法连杆质量,连杆质心位置矢量,连杆质心惯性矩阵(通过动力学参数识别获得)二、牛顿-欧拉法运动外推:向外迭代计算连杆的角速度、角加速度和线加速度力外推:计算作用在连杆质心上的惯性力和力矩力矩内推:向内迭代计算关节力矩2.1 运动向外迭代2.1.1 刚体线速度和角速度线速度坐标系{A}为固定,坐标系{B}固连在刚体上。2.1.2 连杆速度连杆..._matlab机械臂惯性矩

推荐文章

热门文章

相关标签