地址:http://acm.hit.edu.cn/judge/show.php?Proid=1087
思路:求1到1000000以內(nèi)的自數(shù),用了最笨的方法,先是i從1到1000000循環(huán)一遍求以i為基數(shù)的d(i),對(duì)flag[d(i)]置true,然后利用flag[]判斷為那些false的是自數(shù)。本以為會(huì)超時(shí),結(jié)果居然AC了,自己也感覺很奇怪……
代碼如下:
#include <stdio.h>
#include <memory.h>

#define MAX 1000001

int main()


{
bool flag[MAX];
int i;
int result, tmp;

memset(flag, 0, sizeof(flag));
for(i = 1; i < MAX; i++)

{
tmp = result = i;
while(tmp != 0)

{
result += tmp % 10;
tmp /= 10;
}

if(result < MAX)

{
flag[result] = true;
}
}

for(i = 1; i < MAX; i++)

{
if(flag[i] != true)

{
printf("%d\n", i);
}
}

return 0;
}
思路:求1到1000000以內(nèi)的自數(shù),用了最笨的方法,先是i從1到1000000循環(huán)一遍求以i為基數(shù)的d(i),對(duì)flag[d(i)]置true,然后利用flag[]判斷為那些false的是自數(shù)。本以為會(huì)超時(shí),結(jié)果居然AC了,自己也感覺很奇怪……
代碼如下:
#include <stdio.h>
#include <memory.h>
#define MAX 1000001
int main()

{
bool flag[MAX];
int i;
int result, tmp;
memset(flag, 0, sizeof(flag));
for(i = 1; i < MAX; i++)
{
tmp = result = i;
while(tmp != 0)
{
result += tmp % 10;
tmp /= 10;
}
if(result < MAX)
{
flag[result] = true;
}
}
for(i = 1; i < MAX; i++)
{
if(flag[i] != true)
{
printf("%d\n", i);
}
}
return 0;
}

