神奇的題,一個數(shù)加上這個數(shù)的各位數(shù)之和,得出的數(shù)即為有g(shù)enerator的數(shù),列出所self number的數(shù)(小于10000)
可惜,不知道為啥自己電腦上可以運行,onlinejudge不接受。。。
#include <iostream>
#include 
<vector>
#include 
<string>
using namespace std;

int digsum(int n)    //計算各位之和
{
    
int sum=0;
    
while (n)
    
{
        sum
+=n%10;
        n
/=10;
    }

        
return sum;
}

int main()
{
    
int a[10003];
    
int m;
    
for (int i=1;i<=10003;i++)
    
{
         m
=i+digsum(i);
         
if (m<=10000)
         
{
             a[m
-1]=1;
         }

    }

    
for (int j=0;j<10000;j++)
    
{
        
if (a[j]!=1)
        
{
            printf(
"%d\n",j+1);
        }

    }

}


附上某高手代碼。。。
#include"stdio.h"

int s[10100]={0};

void main()
{
    
int a,b,c,d;
    
for(a=0;a<=9;a++)
        
for(b=0;b<=9;b++)
            
for(c=0;c<=9;c++)
                
for(d=0;d<=9;d++)
                     s[a
*1001+b*101+c*11+d*2]=1;
       
for(a=1;a<=10000;a++)
        
if(s[a]==0)
        printf(
"%d\n",a);

}