PREV-3_蓝桥杯_带分数
100 可以表示为带分数的形式:100 = 3 + 69258 / 714。
还可以表示为:100 = 82 + 3546 / 197。
注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。
类似这样的带分数,100 有 11 种表示法。
从标准输入读入一个正整数N (N<1000*1000)
程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。
注意:不要求输出每个表示,只统计有多少表示法!
- a的默认比例为1,依次递增(a <= n的长度)
- 将区间总长度(LEN=9)减去a,并取得中值,从而得到b,c的值(b >= c)
- 每次dfs后,b ++,c --,再次dfs(当b-c > n的长度时,明显不符条件)
源码如下:
1 #include <stdio.h> 2 #define LEN 9 3 4 int n; 5 int a,b,c; 6 int sum = 0 , len = 0; 7 int ans[LEN+1] = {0}; 8 int num[LEN+1] = {0,1,2,3,4,5,6,7,8,9,}; 9 int f[LEN+1] = {0}; 10 11 void dfs(int x) 12 { 13 int i , j; 14 int x1,x2,x3; 15 if (x > 9) 16 { 17 x = x1 = x2 = x3 = 0; 18 /*1.确定第一个值x1*/ 19 for (i = 0 , j = 1 ; i < a ; i ++) 20 { 21 x1 += ans[++x]*j; 22 j *= 10; 23 } 24 25 /*2.确定分数的分子x2*/ 26 for (i = 0 , j = 1 ; i < b ; i ++) 27 { 28 x2 += ans[++x]*j; 29 j *= 10; 30 } 31 32 /*3.确定分数的分母x3*/ 33 for (i = 0 , j = 1 ; i < c ; i ++) 34 { 35 x3 += ans[++x]*j; 36 j *= 10; 37 } 38 39 if (x2%x3 == 0 && (x1 + x2/x3) == n) 40 { 41 sum ++; 42 //printf("%d+%d/%d\n",x1,x2,x3); 43 } 44 return ; 45 } 46 47 for (i = 1 ; i <= 9 ; i ++) 48 { 49 if (!f[i]) 50 { 51 ans[x] = num[i]; 52 f[i] = 1; 53 dfs(x+1); 54 f[i] = 0; 55 } 56 } 57 58 return ; 59 } 60 61 int main(void) 62 { 63 int i; 64 scanf("%d",&n); 65 i = n; 66 while(i) 67 { 68 i = i/10; 69 len ++; /*获取n的长度*/ 70 } 71 72 for (a = 1 ; a <= len ; a ++) 73 { 74 i = LEN-a; 75 b = i - i/2; 76 c = i - b; 77 if (b < c)/*b必定为较大区间*/ 78 { 79 b = b^c; 80 c = b^c; 81 b = b^c; 82 } 83 84 /*更改b和c的比例*/ 85 while (c) 86 { 87 dfs(1); 88 b ++; 89 c --; 90 } 91 } 92 printf("%d",sum); 93 return 0; 94 }
转载于:https://www.cnblogs.com/mind000761/p/8552007.html
PREV-3_蓝桥杯_带分数相关推荐
- 蓝桥杯题目——带分数
文章目录 前言 解题思路 全排列方法 递归实现 循环实现 组合数方法 循环实现 递归实现 浮点转整型思想 前言 本文介绍蓝桥杯题目--带分数,并且对其中包含的方法与思想进行总结,本文是上半部分. 参考 ...
- 【Scratch】青少年蓝桥杯_每日一题_9.09_画圆形渐变螺旋
用心写好每一篇文章 效果图 一.题目背景 本题是Scratch编程问题,出现在第十届蓝桥杯国赛赛中. 二.编程实现 绘制一个颜色变化的圆形螺旋﹐画螺旋与画圆形的方法类似.提示∶ 1.画圆形的方法:前进 ...
- 【Scratch】青少年蓝桥杯_每日一题_7.09_加减大师
用心写好每一篇文章 效果图 一.题目背景 本题是Scratch编程问题,出现在蓝桥杯第十一届的选拔赛考试中. 二.编程实现 博士汪是加减大师,它会随机地出加减算式,并判断玩家回答的得数是否正确.如果它 ...
- 【Scratch】青少年蓝桥杯_每日一题_6.09_密码
用心写好每一篇文章 效果图 一.题目背景 本题是Scratch编程问题,出现在2020年4月的线上省赛模拟考试中. 二.编程实现 输入用户名"蓝桥杯",密码"123456 ...
- 【Scratch】青少年蓝桥杯_每日一题_6.01_画春花
用心写好每一篇文章 效果图 一.题目背景 本题是Scratch编程问题,出现在第十届蓝桥杯的选拔赛中. 二.编程实现 设置背景为白色,选择画笔颜色值为0,粗细为5,以坐标(0,0)点为中心绘制一个如下 ...
- 【Scratch】青少年蓝桥杯_每日一题_5.25_排序
用心写好每一篇文章 效果图 一.题目背景 本题是Scratch编程问题,出现在第十届蓝桥杯省赛中. 二.编程实现 老师给小猫出了一道题:在列表1中生成5个在1~99范围内的随机整数﹐然后按照从大到小的 ...
- 【Scratch】青少年蓝桥杯_每日一题_5.07_猜数字
用心写好每一篇文章 效果图 一.题目背景 本题是Scratch编程问题,出现在第十届蓝桥杯选拔赛中. 二.编程实现 小猫从1-100之间随机取一个数字,让玩家来猜自己取的这个数字﹔ 一共有10次猜的机 ...
- 【Scratch】青少年蓝桥杯_每日一题_5.01_画三五七边型
用心写好每一篇文章 效果图 一.题目背景 本题是Scratch编程问题﹐出现在第十届蓝桥杯选拔赛中.这是一个图形题目﹐主要考察考生的分析能力.角度知识和scratch的画笔应用. 二.编程实现 1)设 ...
- 【Scratch】青少年蓝桥杯_每日一题_3.17_蹦床
用心写好每一篇文章 先看效果图: 一.题目背景 本题是Scratch编程问题,出现在第十届蓝桥杯选拔赛中. 二.编程实现 导入背景库中的"blue sky",导入角色库中的&quo ...
最新文章
- 安装docker后遇到permision问题
- 技巧:利用 Python 实现多任务进程
- c#,winform,验证输入内容,文本框,长度,errorprovider组件,方便,快捷
- 河北高速盘点七大假牌假证违法案例:寒冬穿大裤衩开车
- 公开课-C++学习路线实战导引:从0开始到操作系统内核开发
- UVa 242 邮票和信封(完全背包)
- 语言专升本必背代码_2020年【山西省专升本】,专升本专业与考试科目,专升本招生院校,专升本报名流程大全!...
- class 第一个元素_第二章(第3节):网页元素定位和操作
- 读书笔记_unity4.x第十二章_3D数学基础
- SQL存储过程实例具体解释
- 带有调试器的Apache Camel Eclipse工具
- 查看linux中tcp连接数
- 阿里京东被怼假货泛滥;谷歌 CEO 承认中国版搜索 App 存在;YouTube 全球宕机 | 极客头条...
- DateTime和DateTime2
- asp获取计算机mac,ASP获取客户端MAC地址(源代码)
- 移动端网页开发注意点
- VS2012注册密钥
- 【c语言】矩阵的创建
- android netd守护进程机制 --- netd分析
- Android无线WiFi调试项目adbwifi摆脱数据线拔插烦恼无轻松远程调试
热门文章
- html ondrop未触发,javascript – TableDnD onDrop事件未触发
- linux内核在什么目录结构,Linux Kernel 目录结构说明
- centos非root用户创建用户_CentOS中用户和用户组管理
- 【阿里云MPS】Demo
- selenium:使用已打开的chrome浏览器
- 【maven】改造已有项目
- C语音的预处理,编译,汇编,链接过程分析
- 快搜浏览器_郑秀晶因腿粗再上热搜:怎么减肥才能不反弹?
- wamp中的index.php,codeigniter – 如何删除Wamp中的index.php?
- qt获取图像的每个像素rgb_【可视化-1】认识图像,从图像可视化开始