您的位置:首页 > 其它

蓝桥 历届试题 带分数 全排列

2018-03-13 19:42 288 查看
http://lx.lanqiao.cn/problem.page?gpid=T26

#include <bits/stdc++.h>
using namespace std;

const int maxn=1000000+5;
const int INF=0x3f3f3f3f;

long k[maxn];
int num[11];
int n;
int ans;

void go(int x,int y,int z){
int a=0;
int b=0;
int c=0;
int cnt=1;
for (int i=0;i<x;i++){
a=a*10+num[cnt++];
}
for (int i=0;i<y;i++){
b=b*10+num[cnt++];
}
for (int i=0;i<z;i++){
c=c*10+num[cnt++];
}
if (a*c+b==n*c){
ans++;
}
}
void check(){
for (int i=1;i<=7;i++){
for (int j=1;j<=9-1-i;j++){
go(i,j,9-i-j);
}
}
}

int main(){

cin >> n;

for (int i=1;i<=9;i++){
num[i]=i;
}
do{
check();
}while (next_permutation(num+1,num+10));

cout << ans << endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: