带分数 -- 蓝桥杯

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 ^

以上是关于带分数 -- 蓝桥杯的主要内容,如果未能解决你的问题,请参考以下文章

带分数 -- 蓝桥杯

蓝桥杯历届试题 带分数

蓝桥杯 带分数

蓝桥杯 - 带分数 (DFS)

蓝桥杯历届试题 带分数

[蓝桥杯]带分数