程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> poj1426-Find The Multiple

poj1426-Find The Multiple

編輯:C++入門知識

題意:給你一個數n,求一個最小的數m,m是n的倍數,且m只能由0或1組成   分析:注意一下當n不為零時,m的最高位一定是1的,那麼就可以逐漸枚舉後面的0、1情況了,需要用到同模余定理   代碼:



#include<iostream>  
#include<stdio.h>  
#include<cstring>  
using namespace std;  
int k[1000000];  
int main()  
{  
    int n,t,i;  
    while(scanf("%d",&n)&&n)  
    {  
        k[1]=1;  
        for(i=2;k[i-1];i++)  
            k[i]=(k[i/2]*10+i%2)%n;  
        i--;t=0;  
        while(i)  
        {  
            k[t++]=i%2;  
            i/=2;  
        }  
        while(t)  
            printf("%d",k[--t]);  
        printf("\n");  
    }  
    return 0;  
}  

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved