测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A43442. 带分数提示信息:带分数是分数的一种形式,带分数包含两个部分:整数部分和真分数部分.例如: 前边的3为整数部分,后边4分之3为真分数部分。读作:三又四分之三.例如:5用带分数形式可表示为:3+2956/1478,3+2956/1478,3+9562/4781,3+9712/4856要求:带分数中,数字1-9分别出现且只出现一次。5的带分数形式有4种表示法.输出这个正整数满足要求的带分数表示方法,一…

填空题 困难

题目描述

带分数

提示信息:

带分数是分数的一种形式,带分数包含两个部分:整数部分和真分数部分.

例如: 前边的3为整数部分,后边4分之3为真分数部分。读作:三又四分之三.

例如:

5用带分数形式可表示为:3+2956/1478,3+2956/1478,3+9562/4781,3+9712/4856

要求:带分数中,数字1-9分别出现且只出现一次。

5的带分数形式有4种表示法.

输出这个正整数满足要求的带分数表示方法,一共有多少种

样例输入

100

样例输出

11

参考答案

#include <iostream> #include <cstdio> #include <algorithm> using namespace std; int n,cnt=0; int p[]={1,2,3,4,5,6,7,8,9}; bool check(int x,int y){ int a,b,c; a=b=c=0; for(int i=0;i<x;i++)a=a*10+p[i]; for(int i=x;i<y;i++)b=b*10+p[i]; for(int i=y;i<9;i++)c=c*10+p[i]; if(b%c==0&&a+b/c==n) return true; else return false ; } int main() { cin>>n; do{ for(int i=1;i<7;i++) for(int j=i+1;j<8;j++) if(check(i,j)) cnt++; }while(next_permutation(p,p+9)); cout<<cnt<<endl; return 0; }

答案解析

评分标准:

20分:能正确输出一组数据;

20分:能正确输出两组数据;

20分:能正确输出三组数据;

上一题 下一题