守形数java代码 求守形数

如何用c语言求2~1000中的守形数??

守形数的概念:

创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站制作、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的巴里坤哈萨克网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

若正整数n是它的平方数的尾部,则称n为守形数,又称同构数。

根据定义,可以得到计算的思路。

1 对于范围内的每个数值,计算其平方;

2 根据原数的位数,截取数值的尾部;

3 将数值的尾部与原数比较,如果相等则为守形数。

遍历需要的范围,即2-1000,逐一判断即可得到所有的守形数。

代码如下

#include stdio.h

int main()

{

int i, r, s=1;

for(i = 2; i = 2000; i++)

{

r = i*i;//计算平方。

if(r/(s*10) != 0) s*=10; //获取位数。

r%=s;//得到尾数。

if(r == i) printf("%d\n", i);//是守形数,输出值,每行一个。

}

return 0;

}

输出结果为

5

6

25

76

376

625

Java 怎么判断一个数是否守形数!求高手

double d=625;

double d1=Math.sqrt(d);

String sd1=""+(int)d1;

String sd=""+(int)d;

if(sd.substring(sd.length()-sd1.length(), sd.length()).equals(sd1)){

System.out.println(true);

}else{

System.out.println(false);

}

VB 求守形数

首先你判断守型数的那个函数是错的,你只判断了N平方数的最后一位跟N是否一样,当然只能找个个位数的守型数了。因为当N位数为两位以上时(比如25) 他的平方数是625,在你拿625的最后一位5跟他比较当然不一样。正确的应该是取最后2位(2即25的位数)。正确的函数应该是:

Private Function Fact(N As Long) As Boolean

Dim M

M = N * N

If Right(CStr(M), Len(CStr(N))) = CStr(N) Then Fact = True

End Function

然后你command1里的代码也要改改,一方面不够简洁,还有你是找1-2000内的,而你代码却是1-100范围的守型数。

Private Sub Command1_Click()

Dim I As Long, K As Integer

For I = 1 To 2000

If Fact(I) = True Then

K = K + 1

Print I,

If K Mod 4 = 0 Then Print

End If

Next I

End Sub


网页标题:守形数java代码 求守形数
文章源于:http://azwzsj.com/article/dospepd.html