• 140. 带分数 (15分)


    题目内容:
        100 可以表示为带分数的形式:100 = 3 + 69258 / 714
        还可以表示为:100 = 82 + 3546 / 197
        注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。
        类似这样的带分数,100 有 11 种表示法。
    题目要求:
    从标准输入读入一个正整数N (N<1000*1000)
    程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。
    注意:不要求输出每个表示,只统计有多少表示法!

    例如:
    用户输入:
    100
    程序输出:
    11
    输入描述
    从标准输入读入一个正整数N (N<1000*1000)

    输出描述
    程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。

    输入样例
    100

    输出样例
    11

    #include<iostream>
    #include<stdio.h>
    #include<algorithm>
    using namespace std;
    int number[9];
    int ans = 0;
    int compute(int left,int right){
        int a =0 ;
        for(int i = left;i<=right;i++){
            a = a*10+number[i];
        }
        return a;
    }
    
    
    int main(){
        for(int i=0;i<9;i++){
            number[i] = i+1;
        }
        int n;
        scanf("%d",&n);
        do {
            for(int i = 0;i<7;i++){
                for(int j = i+1;j<8;j++){
                    int a = compute(0,i), b = compute(i+1,j),c = compute(j+1,8);
                    if(b%c!=0||a+b/c!=n)
                        continue;
                    ans++;
                }
            }
        }while(next_permutation(number,number+9));
        cout<<ans<<endl;
        return 0; 
    }
  • 相关阅读:
    你所不知道的 C# 中的细节
    数据分析与数据挖掘 ---- 系列教程
    Tiny Core Linux 安装配置
    Debian 安装
    基于C#的内网穿透学习笔记(附源码)
    Layui前端框架介绍
    使用 C# 捕获进程输出
    sonar扫描——方法重构分析
    消除代码中的坏味道,编写高质量代码
    TensorFlow之张量
  • 原文地址:https://www.cnblogs.com/lusiqi/p/11865488.html
Copyright © 2020-2023  润新知