POJ 1426 Find The Multiple

mac2022-06-30  150

本以为这题会很难,又是大数又是搜索的,结果仔细一研究,就是一水题……

大致题意:

给出一个整数n,(1 <= n <= 200)。求出任意一个它的倍数m,要求m必须只由十进制的'0'或'1'组成。

从小往大搜超不出unsigned long long型的范围,每个数都有答案,放心的DFS就行。

下面是代码:

#include <stdio.h> int n,flat; unsigned long long b; void DFS(unsigned long long a,int step) { if(flat||step==19) { return ; } if(a%n==0) { printf("%I64u\n",a); flat=1; return ; } else { DFS(a*10,step+1); DFS(a*10+1,step+1); } return ; } int main() { while(scanf("%d",&n),n) { flat=0; DFS(1,0); } return 0; }

转载于:https://www.cnblogs.com/lin375691011/p/3996755.html

最新回复(0)