AOJ 759.会绕圈的数

会绕圈的数

Time Limit: 1000 ms   Case Time Limit: 1000 ms   Memory Limit: 64 MB
Total Submission: 44   Submission Accepted: 5

Description

任意一个正整数,把它的每一位数字都平方后相加得到一个数;将这个数的每一位数字再平方相加;依次进行就会产生循环现象。
例如:1234。
1ˆ2+2ˆ2+3ˆ2+4ˆ2=1+4+9+16=30
3ˆ2+0ˆ2=9
9ˆ2=81
8ˆ2+1ˆ2=64+1=65
6ˆ2+5ˆ2=36+25=61
6ˆ2+1ˆ2=36+1=37
3ˆ2+7ˆ2=9+49=58
5ˆ2+8ˆ2=25+64=89
8ˆ2+9ˆ2=64+81=145
1ˆ2+4ˆ2+5ˆ2=1+16+25=42
4ˆ2+2ˆ2=16+4=20
2ˆ2+0ˆ2=4+0=4
4ˆ2=16
1ˆ2+6ˆ2=1+36=37
由于前面已出现过37,这时就产生了循环。
设计一个程序,对给定的一个数,打印出到出现循环为止的所有数。

Input

输入包括多组测试数据,每组测试数据占一行并且只有一个正整数m(m<10000000),当m=0时表示输入结束。

Output

对每组测试数据输出一行结果,结果中包括到第一次产生循环时的所有整数。

Sample Input

Original Transformed
1234
67834807
0

Sample Output

Original Transformed
1234   30   9   81   65   61   37   58   89   145   42   20   4   16   37
67834807   287   117   51   26   40   16   37   58   89   145   42   20   4   16

用一个函数来模拟操作即可

要注意的是输出格式

题目中每个数字后面都是三个空格

AC代码:GitHub

 1 /*
 2 By:OhYee
 3 Github:OhYee
 4 HomePage:http://www.oyohyee.com
 5 Email:[email protected]
 6 Blog:http://www.cnblogs.com/ohyee/
 7
 8 かしこいかわいい?
 9 エリーチカ!
10 要写出来Хорошо的代码哦~
11 */
12
13 #include <cstdio>
14 #include <algorithm>
15 #include <cstring>
16 #include <cmath>
17 #include <string>
18 #include <iostream>
19 #include <vector>
20 #include <list>
21 #include <queue>
22 #include <stack>
23 #include <map>
24 using namespace std;
25
26 //DEBUG MODE
27 #define debug 0
28
29 //循环
30 #define REP(n) for(int o=0;o<n;o++)
31
32 const int maxn = 1005;
33 bool visited[maxn];
34
35 inline int sq(int n) {
36     int ans = 0;
37     while(n) {
38         ans += (n % 10)*(n % 10);
39         n /= 10;
40     }
41     return ans;
42 }
43
44 bool Do() {
45     int n;
46     if(scanf("%d",&n),n == 0)
47         return false;
48
49     memset(visited,false,sizeof(visited));
50     int k = n;
51     while(k>maxn||!visited[k]) {
52         if(k < maxn)
53             visited[k] = true;
54         printf("%d   ",k);
55         k = sq(k);
56     }
57     printf("%d   \n",k);
58     return true;
59 }
60
61 int main() {
62     while(Do());
63     return 0;
64 }
时间: 2024-12-14 21:05:59

AOJ 759.会绕圈的数的相关文章

WPF 自定义绕圈进度条(转)

在设计界面时,有时会遇到进度条,本次讲解如何设计自定义的绕圈进度条,直接上代码: 1.控件界面 <UserControl x:Class="ProgressBarControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc=&q

绕圈跑 题解

一.题目: 二.思路: 这是一道非常有代表性的题目,之前也同样碰到过类似这个题的难点.希望读者朋友能够耐心读完. 首先将v数组排序,最大的速度设为\(v_m\). 设\[T=\frac {l\times c }{v_m}\]表示最快的人跑完所花费的时间,即比赛的总时间. 对于每个(i,j),设\(V_i>V_j\),则i同学追上j同学一圈所需时间为\(\frac {c}{V_i-V_j}\).由于总时间为T,则能追上圈数为\[\lfloor \frac{T}{\frac{c}{v_i-v_j}}

rospy 让机器人绕圈、矩形行走(碰到障碍物停止)

绕圆圈行走 #!/usr/bin/env python import rospyfrom geometry_msgs.msg import Twistfrom math import pi def publisher(): pub = rospy.Publisher('mobile_base/commands/velocity', Twist) rospy.init_node('Walker', anonymous=True) rate = rospy.Rate(10) #10hz r = 0.

WPF-绕圈进度条(一)

在设计界面时,有时会遇到进度条,本次讲解如何设计自定义的绕圈进度条,直接上代码: 1.控件界面 <UserControl x:Class="ProgressBarControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc=&q

告诉你十一个腰椎间盘突出症的锻炼方法

腰椎间盘突出症是骨科疾病中常见的一种,平常腰痛,腰腿痛,可能都是腰椎间盘突出症惹的祸.那么如果不幸患上了腰椎间盘突出症,应该怎样锻炼呢?下面将为大家介绍腰椎间盘突出症的自我锻炼方法 腰间盘突出的锻炼方法一. 腰间盘突出的锻炼方法1.退步走:每天退步走40~60分钟.走的时候尽可能往后倒,以走完后微感疲劳,以不加重症状为度.腰椎间盘突出症的锻炼方法中,退步走最简单易行.2.游泳:在众多的体育运动项目中,游泳运动较为适合腰椎间盘突出症患者,是一种效果不错的锻炼方法.3.仰卧蹬车:仰卧床上,双腿向上似

Numbering Paths (Uva 125 floyd+dp思想)

Numbering Paths Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description Background Problems that process input and generate a simple ``yes'' or ``no'' answer are called decision problems. One class of decis

人造卫星为什么会绕着地球转而不是停在太空中或者越飞越远.掉进地球的卫星为什么烧不完.

人造卫星为什么会绕着地球转而不是停在太空中或者越飞越远.掉进地球的卫星为什么烧不完.卫星被火箭推到太空中之后失去火箭的推动不就停在太空中或者因为惯性越飞越远了吗,为什么会绕着地球在椭圆形的轨道上飞?报废的卫星为什么又会掉下来?掉下来的卫星有的为什么会在大气层中没烧尽,那些卫星不是都不能耐高温的吗,应该一进大气层就熔了啊. 答: 第一点:卫星绕着地球轨道运行,不会飞出去也不会掉下来,归根到底都是万有引力的作用.可以这样类比,我们拿着绳子一头绑着石头用力做绕圈运动,绳子的拉力提供石头运行的向心力,石

Leetcode分类总结(Greedy)

贪心类题目目前除了正则匹配(Wildcard Matching)(据说其实是DP)那道还没做其他的免费题目都做了,简单做个总结. 贪心的奥义就是每一步都选择当前回合”可见范围“(即可得知的信息)内的最优,而在每一步都仅选择当前回合”可见范围“内的最优这一策略下能够导致全局最优的结果的情况使用贪心就会是正确的,否则不适用贪心(或不适用当前对贪心中的最优的定义). 因此,贪心一个点是选择当前最优,另一个点是这个最优要怎么定义,比如是选使得A最小的还是选使得A-B或A/B最小的等等. 贪心的正确性其实

【LeetCode-面试算法经典-Java实现】【134-Gas Station(加油站问题)】

[134-Gas Station(加油站问题] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 原题 There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You have a car with an unlimited gas tank and it costs cost[i] of gas to travel from statio