笔试题——输出循环小数的循环节
求一个分数对应小数的循环节。、
思路:
我们分别用x和y表示分子和分母,先求出整数部分x div y和余数部分x mod y,那么小数部分就是重复将余数部分乘以10再进行整除运算和求余运算,直到出现循环或余数为0时结束。
我们不妨从余数入手,因为小数部分整除的结果是由上一次运算的余数决定的,如果某一次运算产生的余数跟前面产生的余数相同,则说明循环开始。
参考代码:
#include<stdio.h> #define mn 1000 void main() { int i,m,n,r,t; int p[mn],q[mn]; for(i=0;i<mn;i++) //给数组p初始化值全为-1 { p[i]=-1; q[i]=0; } printf("input :m,n(0<=m<n<=1000)= "); scanf("%d%d",&m,&n); t=0; //初始化值 r=m; //把被除数赋给r while(r!=0&&(p[r]==-1)) //循环条件当r不为0且p[r]=-1时执行循环体 { p[r]=t; //余数r第一次出现的位置 r=10*r; //把被除数扩大10倍,以至于取第一个小数 t++; q[t]=r/n; //计算小数点后t位的值:取整,即为m/n的小数从小数点开始逐个取出放到数组q中 r=r%n; //算完一位就去掉一位,即取余对n } printf("m/n = 0."); //因为m<n,所以m/n整数部分0,所以先输出'0.' if (r!=0) //被除数不为0就执行以下语句 { for(i=1;i<=p[r];i++) //输出循环小数中前面非循环的部分 printf("%d",q[i]); printf("("); //输出循环的小数放在括号中 for(i=p[r]+1;i<=t;i++) printf("%d",q[i]); printf(")"); } else //被除数为0的情况 for(i=1;i<=t;i++) //输出不循环的小数 printf("%d",q[i]); printf("/n"); }
笔试题——输出循环小数的循环节相关推荐
- 面试:输出循环小数的循环节
一.引入 偶然在网上看见的,手痒了,就试了试,哈哈.......做出来了,实际就是模拟. 下面的来自维基百科:循环小数是从小数部分的某一位起,一个数字或几个数字,依次不断地重复出现的小数. 循环小数即 ...
- java 循环小数_面试:输出循环小数的循环节
一.引入 偶然在网上看见的,手痒了,就试了试,哈哈.......做出来了,实际就是模拟. 下面的来自维基百科:循环小数是从小数部分的某一位起,一个数字或几个数字,依次不断地重复出现的小数. 循环小数即 ...
- 输出1/n(是循环小数的,只输出第一个循环节)
Input 第一行整数T,表示测试组数.后面T行,每行一个整数 n (1<=|n|<=10^5). Output 输出1/n. (是循环小数的,只输出第一个循环节). Sample Inp ...
- c语言 查找循环节起点,用C语言怎么求循环小数的循环节?
满意答案 zybehqej 推荐于 2016.09.09 采纳率:43% 等级:8 已帮助:512人 1.判断循环的关键是在确定每位小数的时候,判断余数是否出现与之前的相同. 2.例程:int ...
- 求无限循环小数的循环节
输入两个整数x1,x2,输出x1/x2的小数部分的循环节 测试案例: 输入: 8 7 2 210 输出 0.(142857) 0.0(095238) #include <stdio.h>i ...
- C++之求循环小数循环节
■题目描述 : 任意分数都可以写成小数的形式,样例是有限小数或无限循环小数中的一种. ■输入描述: 两个正整数p和q,代表分子和分母. 两个正整数p和q,代表分子和分母.且1 ...
- 10道C++输出易错笔试题收集(敢进来挑战吗?)
下面这些题目都是我之前准备笔试面试过程中积累的,大部分都是知名公司的笔试题,C++基础薄弱的很容易栽进去.我从中选了10道简单的题,C++初学者可以进来挑战下,C++大牛也可以作为娱乐玩下(比如下面的 ...
- 10道C++输出易错笔试题收集
10道C++输出易错笔试题收集 下面这些题目都是我之前准备笔试面试过程中积累的,大部分都是知名公司的笔试题,C++基础薄弱的很容易栽进去.我从中选了10道简单的题,C++初学者可以进来挑战下,C++大 ...
- 给定一个数值,输出符合中国人习惯的读法--记一道笔试题
题目:给定一个数字,最大小于一万亿,输出符合中国人习惯的读法,例如: a.12输出:十二 b.102输出:一百零二 c.1002输出:一千零二 d.112输出:一百十二 e.10112输出:一万零一百 ...
最新文章
- 阿里程序员每天都沮丧想离职!天天去厕所哭!求助心理医生!其他阿里员工:我们也这样!阿里究竟怎么了?...
- matlab对矩阵的单个元素修改,怎么修改矩阵中的某些元素 或者简单点说保留矩阵中的元素...
- 通俗说基于Yarn的Map-Reduce过程
- 【论文相关】历年CVPR、ICCV、ECCV论文合集下载
- 二十五、深入Python中的协程
- 【SHARE】WEB前端学习资料
- 计蒜客可以做计算机编程吗,如果你的编程能力不足以支撑你成为工程师的野心,不妨到计蒜客上学学看...
- Java 抛异常的两种方法
- 为什么要使用Node.js进行数据科学
- 【Kafka】Exiting due to: org/apache/kafka/common/protocol/SecurityProtocol
- Exp3:MAL_免杀原理与实践
- pfSesne 使用IPv6与隧道代理
- 16.卷2(进程间通信)---Sun RPC
- 拓端tecdat|R语言法国足球联赛球员多重对应分析(MCA)
- SpringMVC学习(一)SpringMVC入门 、HelloSpringMVC程序、SpringMVC执行原理
- 常见电脑病毒及解决措施
- windows电脑桌面旋转快捷键
- 图像处理——乘性噪声和加性噪声
- git 入门笔记-基础命令
- 第9周项目6委派任务
热门文章
- pidstat_Linux查看某个进程的磁盘IO读写情况 pidstat
- OpenLayers开发:符号矢量化
- 高维向量相似搜索插件 pgvector
- vue使用命令行构建完项目后_通过命令行创建vue项目的方法
- 可能这些是你想要的H5键盘兼容方案
- 瑞典让华为失去了一个1000万人口的市场,却同时让爱立信失去了一个140000万人的市场...
- 练习Vue烘培坊项目
- fifa18 服务器维护,fifa18链接服务器
- Word图片粘贴上传控件,直接粘贴图片到编辑器-DEDE
- html表格中添加超链接,Excel表格中添加超链接的方法教程