24h購物| | PChome| 登入
2009-11-20 21:44:55| 人氣1,450| 回應1 | 上一篇 | 下一篇

“∧”形排列

推薦 0 收藏 0 轉貼0 訂閱站台

作法 : D&C 與 數學

當我們要放入1~N 的數字時,又要做 “∧”形排列

我們逐步放入1~N 這些數字 每個數字都有2種選擇 放左或放右

但是N最後沒得選 所以只有1種

因此答案就是(2^N) % 1234567

但是2^N方必須用D&C跑 不然會跑很久

所以將N轉成二進位作次方相乘! (在此就不多說了)

/***********************************************************/

#include<stdio.h>  
#include<stdlib.h>  
long long int f(int m,int n, int mod)  
{      
  long long int mul=m;      
  long long int r=1;      
  while(n)  
   {      
      if(n&1)  r*=mul,r%=mod;  
      mul*=mul,mul%=mod,n/=2;      
   }      
  return r;      
}  
main()  
{  
  int N;
  while(scanf("%d",&N)==1)
     if(N!=0)
     printf("%d\n",f(2,N-1,1234567));
     else puts("0");
 return 0;     
}  

台長: 來源不明
人氣(1,450) | 回應(1)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ZeroJudge 基礎+原創題庫 |
此分類下一篇:老Z的题
此分類上一篇:程式設計師的面試問題(三)

許胖
原來是孔明的陷阱我忘記考慮0了
2009-11-25 16:31:05
版主回應
2009-11-25 18:43:15
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文