HDU 1163 Eddy’s digital Roots

來源:互聯網
上載者:User

這題要求的是n^n的digital Roots,其中n<10000。顯然的是肯定是不能暴力解決了!

找規律。

該題的規律是這樣的:無需直接求出n^n來再求其digital Roots。而是“平方一求”,然後用個迴圈一直計算完所有冪次為止。可見,這樣處理之後最多計算5000即可。

舉個例子來說明下:9^9。先求9*9=81的digital Roots為9;然後用9*(9*9),再求其digital Roots為9;繼續9*(9*9)......直到計算完所有冪次為止。

 

AC代碼:51MS

#include<iostream>using namespace std;int digitRoot(int a)  //取任一個數的root{int tmp;while(a>9){tmp=a;a=0;while(tmp!=0){a+=tmp%10;tmp/=10;}}return a;}void deal(int n){int rem=n;bool flag=false;if(n%2!=0)   {rem--;flag=true;}int i,dr=1;for(i=1;i<=rem;i+=2){dr=digitRoot(dr*n*n);}if(flag)dr=digitRoot(dr*n);cout<<dr<<endl;}int main(){int n;while(cin>>n,n){deal(n);}return 0;}

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.