日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NYOJ 52 无聊的小明

發布時間:2025/3/16 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NYOJ 52 无聊的小明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

無聊的小明

時間限制:3000?ms ?|? 內存限制:65535?KB 難度:3 描述
這天小明十分無聊,沒有事做,但不甘于無聊的小明聰明的想到一個解決無聊的辦法,因為他突然對數的正整數次冪產生了興趣。
  眾所周知,2的正整數次冪最后一位數總是不斷的在重復2,4,8,6,2,4,8,6……我們說2的正整數次冪最后一位的循環長度是4(實際上4的倍數都可以說是循環長度,但我們只考慮最小的循環長度)。類似的,其余的數字的正整數次冪最后一位數也有類似的循環現象。
  這時小明的問題就出來了:是不是只有最后一位才有這樣的循環呢?對于一個整數n的正整數次冪來說,它的后k位是否會發生循環?如果循環的話,循環長度是多少呢?
注意:
  1.如果n的某個正整數次冪的位數不足k,那么不足的高位看做是0。
  2.如果循環長度是L,那么說明對于任意的正整數a,n的a次冪和a + L次冪的最后k位都相同。 輸入
第一行輸入一個整數N(0<n<10);接下來每組測試數據輸入只有一行,包含兩個整數n(1 <= n <100000)和k(1 <= k <= 5),n和k之間用一個空格隔開,表示要求n的正整數次冪的最后k位的循環長度。
輸出
每組測試數據輸出包括一行,這一行只包含一個整數,表示循環長度。如果循環不存在,輸出-1。

樣例輸入
1 32 2
樣例輸出
4
快速冪!
AC碼:
#include<stdio.h> #include<math.h> int main() {long long N,n,k;long long m,i,b,ans,t;long long a,j;scanf("%lld",&N);for(i=1;i<=N;i++){scanf("%lld%lld",&n,&k);m=(int)pow(10,k);a=n%m;int flag=1;for(j=2;j<m;j++){b=j;ans=1;t=n;while(b!=0){if(b&1){ans=(ans*t)%m;}b=b/2;t=t*t%m;}if(ans==a){flag=0;printf("%lld\n",j-1);break;}}if(flag)printf("-1\n");}return 0; }

總結

以上是生活随笔為你收集整理的NYOJ 52 无聊的小明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。