现在的位置: 首页 > 竞赛 > 正文

穷举法

2011年03月26日 竞赛 ⁄ 共 66字 ⁄ 字号 暂无评论

穷举法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <stdio.h>
 
int is_diff_digits(int n, int len)
{
	int a[9];
	int i, j;
 
	for(i=0; i<len; i++) a[i] = 0;
	for(i=0; i<len; i++) {
		a[i] = n % 10;
		n = n / 10;
	}
	for (i=0; i<len; i++)
		for(j=i+1; j<len; j++)
			if (a[i]==a[j]) return 0;
	return 1;
 
}
 
int main(int argc, char *argv[])
{
 
	int i, n, m;
 
	scanf("%d", &n);
	for (i=0; i<=99999; i++) {
		if (is_diff_digits(i, 5)) {
			m = n * i;
			if ((m<=99999) && is_diff_digits(m*10000+i,10)) {
				if (i<10000)
			 		printf("%d/0%4d=%dn",m,i,n);
	 			else
	 				printf("%d/%5d=%dn",m,i,n);
			}
		}
	}	
 
	return 0;
}
【上篇】
【下篇】

抱歉!评论已关闭.