LeeBlog

导航

HDU 1128 Self Numbers

这题一看是水,二看还是水,最后一做就挂了,归咎于数组越界啊。我却全然不知。。。。 //62MS水过

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#define Max 1000005
int num[Max + 1];
inline int cal( int i )//用内联快很多
{
    int sum = i;
    while( i )
    {
           sum += i % 10;
           i /= 10;
           }
    return sum;
}
void fun(  )
{
     memset( num,0,sizeof( num ) );
     for( int i = 1; i < Max; ++i )
     {
          int x = cal( i );
          if( x > Max )
              continue;
          num[x] = 1;//开始把这句写在if前面了,一直wa,哎  悲剧啊。。。。。
      }
 }
int main(  )
{
    fun(  );
    //freopen( "1.out","w",stdout );
    for( int i = 1; i <= 1000000; ++i )
         if( !num[i] )
             printf( "%d\n",i );
    //system( "pause" );
    return 0;
}

posted on 2011-05-23 09:37  LeeBlog  阅读(304)  评论(0编辑  收藏  举报