69,369
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
lz的代码中检测100-999中每个数,效率不高,其实可以只考虑完全数,
这样只检测完全数中是否两位相同即可,而且sqrt的使用也会使效率下降
#include <stdio.h>
int main()
{
int d = 10; // 10 * 10 = 100
int square = 100; // 保存d对应的完全数
while (d < 32) // 32 * 32 >= 1000
{
if (存在两位相同)
printf("%d\n", square);
// (d + 1)^2 = d^2 + 2 * d + 1
square += 2 * d++ + 1;
}
return 0;
}