• hdu 1163 Eddy's digital Roots


    #include<stdio.h>
    int cal(int m)
    {
        while(m>9)
        {
            //int yu=m;
            int sum=0;
            for(int i=0;m;i++)
            {
                sum+=m%10;
                m/=10;
            }
            m=sum;
        }
        return m;
    }
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF&&n!=0)
        {
            int mul=1;
            for(int i=0;i<n;i++)
            {
                mul*=n;
                if(mul>10)mul=cal(mul);
            }
            printf("%d\n",mul);
        }
        return 0;
    }

    数学规律:

                 n^n=((n*n)’s digital root *n )’s digital root…………;

    该进(加入的快速幂的方法)

    #include<stdio.h>
    int cal(int m)
    {
        while(m>9)
        {
            //int yu=m;
            int sum=0;
            for(int i=0;m;i++)
            {
                sum+=m%10;
                m/=10;
            }
            m=sum;
        }
        return m;
    }
    int multy(int q,int n)
    {
        int cnt=n;
        int base=n;
        int ret=1;
        while(cnt>0)
        {
            if(cnt&1)
                ret=ret*base;
            cnt=cnt>>1;
            base=base*base;
            if(base>9)base=cal(base);
            if(ret>9)ret=cal(ret);
        }
        return ret;
    }
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF&&n!=0)
        {
            int mul=multy(n,n);
            /*for(int i=0;i<n;i++)
            {
                mul*=n;
                if(mul>10)mul=cal(mul);
            }*/
            printf("%d\n",mul);
        }
        return 0;
    }
  • 相关阅读:
    su的使用与退出
    338. Counting Bits
    c语言学习笔记
    Linux命令
    vimrc
    CSS选择器
    链表//设计链表
    数组和字符串//反转字符串中的单词 III
    CSS样式基本知识
    开始学习CSS,为网页添加样式
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3089048.html
Copyright © 2020-2023  润新知