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分:能正确输出三组数据;
上一题
下一题