• HDU 1163 Eddy's digital Roots(模)


    HDU 1163

    题意简单,求n^n的(1)各数位的和,一旦和大于9,和再重复步骤(1),直到和小于10.

    //方法一:就是求模9的余数嘛! (228) leizh007 2012-03-26 21:03:19 (确实可行)

    #include<stdio.h>
    #include<string.h>
    int main()
    {
        int n,i,ans;
        while(scanf("%d",&n),n)
        {
            ans=1;
            for(i=0;i<n;i++)
            {
                ans=(ans%9)*n;
                if(ans==0)
                    ans=9;
            }
            ans=ans%9;
            if(ans==0)
                ans=9;
            printf("%d
    ",ans);
        }
        return 0;
    }
    View Code

      //方法二:乘一次,加一次(这个也可行,这是我自己想的哦~哈哈)

    #include<stdio.h>
    #include<string.h>
    int f(int num)
    {
        int ans=0;
        while(num)
        {
            ans=num%10+ans;
            num=num/10;
        }
        if(ans>9)
            return f(ans);
        return ans;
    }
    int main()
    {
        int n,i,ans,num;
        while(scanf("%d",&n),n)
        {
            ans=f(n);
            for(i=1;i<n;i++)
            {
                num=ans*n;
                ans=f(num);
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
    View Code
    一道又一道,好高兴!
  • 相关阅读:
    EveryOne Piano
    3D扫描商店
    Substance PBR Guide
    C2GOASM
    Unity调试外部DLL
    BinaryReader优化
    IL
    如何画头发
    Bitrix24
    Mac查找包含指定字符串的文件
  • 原文地址:https://www.cnblogs.com/laiba2004/p/3231368.html
Copyright © 2020-2023  润新知