高精度乘以單精確度 Round and Round We Go poj1047

來源:互聯網
上載者:User

      題意:給你一個n位整數(可以有前置0),用這個數分別乘以1~n中的每一個數,得到的結果都與原數相同,這裡的相同是指得到的結果從某一位開始到結束與原數相等。

下面貼代碼,已帶有詳細的注釋。

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int ans[1000];char s[65];int main(){int i,j,k,n;while(~scanf("%s",s)){n=strlen(s);for(i=2;i<=n;i++)//依次與2~n相乘{for(j=n;j>0;j--)//初始化ansans[j]=s[n-j]-'0';for(j=1;j<=n;j++){ans[j]=ans[j]*i+ans[j-1]/10;ans[j-1]%=10;}if(ans[n]>=10)//長度超了肯定不滿足題意break;bool ok=false;for(j=0;j<n;j++)//枚舉起點,判斷是否有相同的{for(k=0;k<n;k++)if(s[(j+k)%n]-'0'!=ans[n-k])break;if(k==n)//找到了一個相同的{ok=true;break;}}if(!ok)//與某一個i相乘不滿足題意,直接breakbreak;}if(i>n)printf("%s is cyclic\n",s);elseprintf("%s is not cyclic\n",s);}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.