带分数 -- 蓝桥杯
Posted 满天星!
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带分数 -- 蓝桥杯相关的知识,希望对你有一定的参考价值。
带分数 – 蓝桥杯
题目描述:
100 可以表示为带分数的形式:100=3+69258714
还可以表示为:100=82+3546197
注意特征:带分数中,数字 1∼9 分别出现且只出现一次(不包含 0)。
类似这样的带分数,100 有 11 种表示法。
输入格式
一个正整数。
输出格式
输出输入数字用数码 1∼9 不重复不遗漏地组成带分数表示的全部种数。
数据范围
1≤N<106
输入样例1:
100
输出样例1:
11
输入样例2:
105
输出样例2:
6
AC代码
// n = a + b / c
// n * c = a * c + b
#include<bits/stdc++.h>
using namespace std;
int num[20];
int fun(int l,int r)
int res=0;
for(int i=l;i<=r;i++)
res=res*10+num[i];
return res;
int main()
int n,ans=0;
cin>>n;
for(int i=1;i<=9;i++) num[i]=i;
do
for(int i=1;i<=9;i++)
for(int j=i+1;j<=9;j++)
int a=fun(1,i);
int b=fun(i+1,j);
int c=fun(j+1,9);
if(n*c==a*c+b) ans++;
while(next_permutation(num+1,num+10));
cout<<ans<<endl;
return 0;
如果觉得写的还不错,点个赞吧 ^ v ^
以上是关于带分数 -- 蓝桥杯的主要内容,如果未能解决你的问题,请参考以下文章