Euler 92

来源:互联网 发布:java接口的特点 编辑:程序博客网 时间:2024/04/28 22:49


#include <iostream>
#include <stdio.h>
#include<string.h>
#define MAX 10000007
using namespace std;

int vis[MAX];

 int dfs(int sum)
 {
     int tmp=0,s=sum;
     while(s)
     {
         tmp+=(s%10)*(s%10);
         s/=10;
     }
     if(vis[tmp]!=0)
         return vis[tmp];
     else
     if(vis[tmp]==0)
  {
  vis[tmp]=1;
     return vis[tmp]=dfs(tmp);
  }
 }

int main()
{
    int n;
    int ans=0;
    memset(vis,0,sizeof(vis));
 vis[89]=2;
    for(int i=1;i<10000000;i++)
    {
        if(vis[i]==2)
        {
            ans++;
            continue;
        }
        else if(dfs(i)==2)
            ans++;
    }
    printf("%d\n",ans);
    return 0;
}

0 0
原创粉丝点击