回复 72楼 beyondyf
杨哥,能不能有时间讲讲第9题。不知道如何来减少时间

一同学习, 一同进步
2013-05-30 22:28
2013-05-31 11:18
2013-06-01 09:38
2013-06-01 18:36
程序代码:#include<stdio.h>
int s[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int n, count;
void search(int deep)
{
int i, j, t, a, b, c, d, k;
if(deep >= sizeof(s) / sizeof(int))
{
for(t = i = 0; i < sizeof(s) / sizeof(int); t = t * 10 + s[i++]);
for(i = 100; i <= t; i *= 10)
{
if((a = t / i) >= n) continue;
for(k = t % i, j = 10; (b = k / j) >= (c = k % j); j *= 10)
{
if((d = a + b / c) < n) break;
if(b % c) continue;
if(d == n) printf("%d + %d / %d\n", a, b, c), count++;
}
}
return;
}
for(i = deep; i < sizeof(s) / sizeof(int); i++)
{
t = s[deep]; s[deep] = s[i]; s[i] = t;
search(deep + 1);
t = s[deep]; s[deep] = s[i]; s[i] = t;
}
}
int main()
{
scanf("%d", &n);
search(0);
printf("%d", count);
return 0;
}

2013-06-01 19:54
2013-06-02 19:29
2013-06-08 23:27
2013-06-08 23:31

2013-06-14 09:35
2013-06-14 09:37