博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
周四新生训练 Bad random numbers
阅读量:5361 次
发布时间:2019-06-15

本文共 976 字,大约阅读时间需要 3 分钟。

http://ecustoj.sinaapp.com/problemshow.php?pro_id=432

#include
#include
int b[1000];int main(){ int a,mid,square,i=0,j,flag; while(scanf("%d",&a)!=EOF) { flag=0; memset(b,9999,sizeof(b)); i=0; while(i<10000) { b[i]=a; mid=a/10%100; if(a==mid) break; square=mid*mid; for(j=0;j<=1000;j++) { if(square==b[j]) flag=1; } if(flag==1) break; a=square; i++; } if(mid==0) i++; printf("%d\n",i+1); }}

出现的特殊数据就是循环,题目给出了一个一次的特殊循环(循环节=1),如果单单考虑这一种的话,会发现结果是WA。

因而应该还存在经过几次square & 取middle之后又回到几次之前的num的情况,即循环节>1。

时间问题,采用比较蠢的办法,开一个数组,记录下之前出现过的num,一旦square之后,立刻与之前出现过的每一个num相比较,如果不存在相同的数字,那么就继续进行square & 取middle,如果存在相同的数字,那么就跳出循环。

最后应当针对不同的case对i进行处理,再把i输出。

转载于:https://www.cnblogs.com/whatthefy/archive/2013/03/28/2987808.html

你可能感兴趣的文章
Uva 11729 Commando War
查看>>
增强学习(一) ----- 基本概念
查看>>
ubuntu下USB连接Android手机
查看>>
C# 语句 分支语句 switch----case----.
查看>>
lseek函数
查看>>
反射获取 obj类 的属性 与对应值
查看>>
表单中的readonly与disable的区别(zhuan)
查看>>
win10下安装配置mysql-8.0.13--实战可用
查看>>
周记2018.8.27~9.2
查看>>
MySQL中 1305-FUNCTION liangshanhero2.getdate does not exit 问题解决
查看>>
Ctrl+Alt+Down/Up 按键冲突
查看>>
python序列化和json
查看>>
mongodb
查看>>
网格与无网格
查看>>
2018年3月份
查看>>
SSH-struts2的异常处理
查看>>
《30天自制操作系统》学习笔记--第14天
查看>>
LGPL协议的理解
查看>>
1、Python基础
查看>>
Unity The Tag Attribute Matching Rule
查看>>