华为机试—整数相除
来源:互联网 发布:网络机房验收标准 编辑:程序博客网 时间:2024/04/28 13:00
两个整数相除,将结果用字符串返回。如果是循环小数,将循环的位用括号括起来。
函数原型为 void div(const int a,const int b,char *str)
输入:1 3
输出:0.(3)
本题写的简单点——》直接输出结果#include<iostream>#include<cstdio>#include<map>using namespace std;void divv(const int a,const int b){ int w[100]; int q[100]; int i,j,k; int m=a; int n=b; int cnt=6; int r=0; int pos; int t; if(m*n<0) printf("-"); m=m<0?-m:m; n=n<0?-n:n; i=0; j=0; k=0; printf("%d.",m/n); m=m%n; if(m==0) { printf("(0)"); } else { while(k<cnt) { m*=10; t=m/n; m=m%n; if(m==0) { q[i++]=t; pos=i; break; } for(r=0;r<j;++r) if(w[r]==m) break; if(r<j) { pos=r; break; } q[i++]=t; w[j++]=m; k++; } if(k<cnt) { for(r=0;r<pos;++r) printf("%d",q[r]); if(pos==i) printf("(0)"); else{ printf("("); for(;r<i;++r) printf("%d",q[r]); printf(")"); } } else { for(r=0;r<cnt;++r) printf("%d",q[r]); } } printf("\n");}int main(int argc, char *argv[]){ divv(1,3); divv(1225,1000); divv(8,3); divv(8,4); divv(1,1); return 0;}
测试结果为:
0 1
- 华为机试—整数相除
- 华为机试—整数相除
- 华为机试题: 整数相除
- [华为机试练习题]53.整数相除(AC 但还有bug)
- 华为机试——整数划分
- 华为机试——整数划分
- 华为机试——连续整数
- 两个整数相除
- 整数相除
- 两个整数相除
- 14.14 整数相除
- 整数相除优化
- 超大整数相除
- 两个整数相除
- 两个整数相除
- 两个整数相除
- 华为机试——超大整数加法运算
- 华为机试——提取不重复的整数
- Arduino小白入门教程(一)
- Assertion failure 错误
- Android菜鸟笔记2-Activity生命周期与Log
- 【嵌入式开发】 ARM 汇编 (指令分类 | 伪指令 | 协处理器访问指令)
- 表情的发送,展示,粘贴与删除
- 华为机试—整数相除
- Atom-shell 初接触. 第二天[Mac]
- Android adb命令收集
- The constructor JButton(String) is not accessible due to restriction on required library C:\Program
- Android菜鸟笔记3-Activity切换
- Linux之MySQL源码编译安装
- BeautifulSoup 解析中文网页乱码问题
- cocos2dx 3.3 tilemap 缩放滑动并且准确点击对象
- beego中带参数的UrlFor和urlfor的用法讲解