博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
历届试题 带分数 搜索
阅读量:3904 次
发布时间:2019-05-23

本文共 868 字,大约阅读时间需要 2 分钟。

题目:

问题描述

100 可以表示为带分数的形式:100 = 3 + 69258 / 714。

还可以表示为:100 = 82 + 3546 / 197。

注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。

类似这样的带分数,100 有 11 种表示法。

输入格式

从标准输入读入一个正整数N (N<1000*1000)

输出格式

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

注意:不要求输出每个表示,只统计有多少表示法!

样例输入1

100

样例输出1

11

样例输入2

105

样例输出2

6

思路:

将1-9的全排列列出来,然后进行判定,因为满足n=a+b/c,所以a<n,b>c,根据限制条件进行剪纸。

代码如下:

#include 
#include
#include
#include
using namespace std;typedef long long ll;ll n;int vis[15];int ans=0;int w;ll pow (int a,int b){ ll ans=1; while(b--) { ans*=a; } return ans;}void Judge(ll x){ ll t; ll a,b,c,q; for (int i=1;i<=w;i++) { t=x; a=t%pow(10,i); if(a>=n) continue; t/=pow(10,i); q=9-i; for (int j=1;j<=q/2;j++) { ll tt=t; b=tt%pow(10,j); tt/=pow(10,j); if(tt

 

转载地址:http://izoen.baihongyu.com/

你可能感兴趣的文章
GUI 编辑框中读写矩阵
查看>>
matlab成段注释
查看>>
matlab数据的导入和导出,以matlab工作区workspace为source和destination
查看>>
获取字节数
查看>>
福听阅读器 背景色设置
查看>>
保护眼睛 电脑设置
查看>>
【云端3.4 Beta】云端无法启动,从服务器返回了一个参照
查看>>
解决chrome下用google搜索图片第二页以后不显示的问题
查看>>
将163邮箱的通讯录导入到outlook2010
查看>>
winRar过期了,总弹出 “购买……”
查看>>
看过的动漫
查看>>
华硕 P5KPL-AM 前面板耳机没有声音
查看>>
个人常用的Chrome浏览器扩展程序
查看>>
labview 局部变量问题
查看>>
labview 循环外部与数组相连时问题
查看>>
哈佛大学凌晨4点半的景象--哈佛图书馆的二十条训言
查看>>
闲话机器人领域的国际会议
查看>>
Outlook2010到处通讯录
查看>>
Gmail导入通讯录
查看>>
小米笔记本安装Win 10历程
查看>>