首页 > 试题广场 >

下列哪个整数是否具有以下性质

[单选题]
下列哪个整数是否具有以下性质:将该整数每位的数平方后相加,得到一个新的数,如此循环下去,最后能得到1。
例如:整数7
7^2=49
4^2+9^2=97
9^2+7^2=130
1^2+3^2+0^2=10
1^2+0^2=1
  • 16
  • 17
  • 18
  • 19
发表于 2017-03-23 11:47:08 回复(0)
更多回答
这种题目一般都是用来消耗时间的,我的做法就是从最后一个选项开始算
发表于 2015-09-28 18:23:39 回复(6)
方法1:一个一个算
方法2:最后要得到1,最后一次得到的数必须为10,100,1000……,且这个数是两个数的平方和,题目中已给出10,根据数的大小判断下面求的应该是100。数字的平方和有1 4 9 16 25 36 49 64 81,36+64=100,即68或者86,其中86不是两个数的平方和,68 = 64 +4;所以前一个数为82或28,其中28不是两个数的平方和,82 = 1+81,所以上两个数为19或91
如果采用方法2可能计算时间更长,这里只是给出了另一种思路参考,具体遇到怎么算看自己选择
发表于 2015-09-29 17:06:33 回复(2)
机智如我,我觉得出题人就是想着让一个一个算的浪费时间,所以把正确答案放在最后,所以我就从最后一个算起,果然一试一个准!当然,找到其中的规律,对应这类题编程才是王道啊~·
发表于 2016-09-08 22:32:44 回复(1)
我是快速一个个计算的
发表于 2015-09-28 14:36:01 回复(5)
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int n,t;
    scanf("%d",&n);
    t=n;
    while(t!=1)
    {
        n=t;
        t=0;
        while(n)
        {
            t+=(n%10)*(n%10);
            n/=10;
        }
    }
    printf("yes");
    return 0;
}
发表于 2017-07-25 08:55:25 回复(2)
这个没办法 只能一个一个计算了   A我算了 是错的 无限循环

发表于 2015-09-30 21:04:57 回复(0)
A 16          
1^2 + 6^2 = 37
3^2 + 7^2 = 58
B 17           
1^2 + 7^2 = 50
5^2 + 0^2 = 25
2^2 + 5^5 = 29
2^2 +  9^9 = 85
C 18           
1^2 + 8^2 = 65
6^2 + 5^2 = 61
6^2 + 1^2 = 37
3^2 + 7^2 = 58
A/B/C 均是 5 和 8 结尾,下面的计算步骤一样,且没有出现 0 ,因此 A/B/C 均不对。
D 19
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100 
发表于 2015-10-07 11:49:12 回复(0)
请教大牛们,用编程语言怎么实现查找出100以内的具有这种性质的数啊?
发表于 2016-04-20 19:36:24 回复(0)
搞定
发表于 2022-07-22 10:36:46 回复(0)
试试吧,计算一遍就知道了。
发表于 2020-12-01 18:01:32 回复(0)
def abc(a):
    b = str(a)
    new = 0
    for num in b:
        num = int(num)
        new += num ** 2
    return new

#测试
c = abc(16)
flag = 1
while c != 1 and flag < 20:
    c =abc(c)
    flag += 1
    print(c,flag)

发表于 2020-05-13 01:03:11 回复(0)
81+1 = 90  我真想给自己两个大嘴巴子
发表于 2019-08-19 09:38:27 回复(0)

我发现这种试答案的题就应该从D开始试 一般试答案的都在D C项

发表于 2019-06-18 08:26:06 回复(0)
从最后一个算
发表于 2019-05-30 19:01:58 回复(0)
一个个算,算的时候注意规律,比如算A的时候遇到循环,证明是错的,在算B的时候遇到A算过的数就知道是错的了,依次类推。
发表于 2015-11-20 16:08:13 回复(0)
先计算第一个16,发现是一个循环,既经过一定次数后会重新变成16;
所以在以后的计算中的任何一步和16的计算中的数字相同,都会陷入循环,后面也就不用再计算了。
如此可减少计算量。
发表于 2015-10-07 11:16:10 回复(0)
用倒推法,最后结果为1的话,那么上个数肯定是1后面跟若干个0.题目实例是10,可以选一个小点的数开始,比如100.100 = 6^2 +8^2,那么上个数很有可能是68。68 = 8 ^ 2 + 2^2.上个数就是82.
82 = 1 ^2 + 9 ^2.那么很显然答案就是D
发表于 2015-10-06 11:41:56 回复(0)
d
发表于 2015-10-03 00:05:56 回复(0)