主题:高手进进,有个问题啊~~~~~速度
hxy7788521
[专家分:0] 发布于 2006-01-22 09:10:00
求2-1000的守行数
(若某数的平方,其低位与原数相等!!!!该数为守行数~~~~)
谁来教教我
哥哥姐姐行行好把``````
速度啊
回复列表 (共23个回复)
21 楼
javake [专家分:910] 发布于 2006-01-29 23:17:00
我的算法的原理是:
既然“守行数”(X)与它的平方数(X^2)的低位相等,
那么它的平方减去它所得的结果(X^2-X)必然是整十或整百或整千的数,
当然具体是哪一种要看X的位数,
如果X只有一位,那么X^2-X是整十;
如果X只有两位,那么X^2-X是整百;
如果X只有三位,那么X^2-X是整千;
所以X^2-X除以10、100、1000后的余数必然为0
......
22 楼
yyg1990 [专家分:0] 发布于 2009-11-17 22:32:00
#include<stdio.h>
#include<math.h>
void main()
{
int a,b,c,d,i;
for(a=2;a<=1000;a++){
b=(int)pow(a,2);
i=1;
c=(int)pow(10,i);
while(b/c != 0)
{
i++;
c=(int)pow(10,i);
}
d=b-(b/(int)pow(10,i-1))*(int)pow(10,i-1);
if(d==a)printf("%d\n",a);
}
}
23 楼
yansheng [专家分:1530] 发布于 2009-11-18 12:17:00
[quote]我的算法的原理是:
既然“守行数”(X)与它的平方数(X^2)的低位相等,
那么它的平方减去它所得的结果(X^2-X)必然是整十或整百或整千的数,
当然具体是哪一种要看X的位数,
如果X只有一位,那么X^2-X是整十;
如果X只有两位,那么X^2-X是整百;
如果X只有三位,那么X^2-X是整千;
所以X^2-X除以10、100、1000后的余数必然为0
......[/quote]
这个不错!厉害!
我来回复