一个正整数。
输出输入数字用数码 1~9 不重复不遗漏地组成带分数表示的全部种数。
1 ≤ N < 1000000
100
11
#include <stdio.h> int n, ans = 0; int a[10]; int niubi(int l, int r) { int i, sum = 0; for(i = l; i < r; i++) { sum = sum * 10 + a[i]; } return sum; } void dfs(int x) { int i, j, k; if(x == 9) { /* for(k = 0; k < 9; k++) { printf("%d ",a[k]); } printf("\nans = %d\n",ans); */ for(i = 1; i < 9; i++) { for(j = i + 1; j < 9; j++) { int q = niubi(0, i); int w = niubi(i, j); int e = niubi(j, 9); if(e == 0)continue; if(q + w / e == n && w % e == 0) { ans++; } } } return; } for(i = 1; i <= 9; i++) { if(book[i] == 0) { book[i] = 1; a[x] = i; dfs(x + 1); book[i] = 0; } } } int main() { scanf("%d",&n); dfs(0); printf("%d\n",ans); }
原文:https://www.cnblogs.com/rongrongrong/p/14592830.html