当前位置: 首页 > news >正文

最新自助建站源码苏州网页制作人才招聘

最新自助建站源码,苏州网页制作人才招聘,wordpress谷歌字体 360,wordpress多媒体主题目录 ⭐题目描述⭐ ⭐分析 ⭐程序代码 运行结果 ⭐文案分享⭐ ⭐题目描述⭐ 本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。 输入格式: 输入第一行给出…

目录

⭐题目描述⭐

⭐分析

⭐程序代码

 运行结果

 ⭐文案分享⭐


⭐题目描述⭐

本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。


输入格式:

输入第一行给出一个正整数N(≤100)。随后一行按格式a1/b1 a2/b2 ...给出N个有理数。题目保证所有分子和分母都在长整型范围内。另外,负数的符号一定出现在分子前面。


输出格式:

输出上述数字和的最简形式 —— 即将结果写成整数部分 分数部分其中分数部分写成分子/分母,要求分子小于分母,且它们没有公因子。如果结果的整数部分为0,则只输出分数部分。


输入样例1:

5
2/5 4/15 1/30 -2/60 8/3

输出样例1:

3 1/3

输入样例2:

2
4/3 2/3

输出样例2:

2

输入样例3:

3
1/3 -1/6 1/8

输出样例3:

7/24

⭐分析

 我们可以用两个变量sum和num来计算分子和分母的变化,一开始我们将sum的值赋为0,num的值赋为1,然后字母a为输入分数的分子,b为分母,以样例测试一为例:

5
2/5 4/15 1/30 -2/60 8/3

算法描述为:

for(int i=0;i<N;i++){scanf("%d/%d",&a,&b);sum*=b;sum+=num*a;num*=b;int s=num_GY(num,sum);//寻找num和sum的最大公约数sum=sum/s;//将分子和分母最简化num=num/s;}
sum=0anum=1b

sum=0*5=0

sum=0+1*2=2

2num=1*5=55
sum=2/1=2sum和num的最大公约数为1num=5/1=5sum和num的最大公约数为1

sum=2*15=30

sum=30+5*4=50

4num=5*15=7515
sum=50/25=2sum和num的最大公约数为25num=75/25=3sum和num的最大公约数为25

sum=2*30=60

sum=60+3*1=63

1num=3*30=9030
sum=63/9=7sum和num的最大公约数为9num=90/9=10sum和num的最大公约数为9

sum=7*60=420

sum=420+10*(-2)=400

-2num=10*60=60060
sum=400/200=2sum和num的最大公约数为200num=600/200=3sum和num的最大公约数为200

sum=2*3=6

sum=6+3*8=30

8num=3*3=93
sum=30/3=10sum和num的最大公约数为3num=9/3=3

sum和num的最大公约数为3

求两个数的最大公约数,我们可以用辗转相除法,这样我们的程序的时间复杂度是O(n),如果我们在写算法题的过程中遇到超时问题,请先检查我们的算法是否有循环套循环的过程,如果有,请想办法去掉一层循环来降低我们的算法时间复杂度。

辗转相除法的算法描述:

int num_GY(int num,int sum){//寻找分子分母的最大公约数int min=num<sum?num:sum;//找出两个数的最小值int max=num>sum?num:sum;//找出两个数的最大值int t;while(min!=0){//利用辗转相除法计算最大公约数t=max%min;max=min;min=t;}return max;
}

举例:

我们可以任意找两个数,比如63和90,我们来用辗转相除法求最大公约数。

首先我们先判断出这两个数的最大值和最小值。

int min=num<sum?num:sum;//找出两个数的最小值
int max=num>sum?num:sum;//找出两个数的最大值
循环tmax=90min=63
第一次循环(min!=0)t=90%63=27max=63min=27
第二次循环(min!=0)t=63%27=9max=27min=9
第三次循环(min!=0)t=27%9=0max=9min=0
第四次循环(min==0)退出循环返回max=9结束

⭐程序代码

#include<stdio.h>
int num_GY(int num,int sum){//寻找分子分母的最大公约数int min=num<sum?num:sum;//找出两个数的最小值int max=num>sum?num:sum;int t;while(min!=0){//利用辗转相除法计算最大公约数t=max%min;max=min;min=t;}return max;
}
int main(){int N;scanf("%d",&N);int a,b;int sum=0,num=1;//sum为分子和,num为分母和for(int i=0;i<N;i++){scanf("%d/%d",&a,&b);sum*=b;sum+=num*a;num*=b;int s=num_GY(num,sum);sum=sum/s;//将分子和分母最简化num=num/s;}if(sum%num==0)//当分子是分母的倍数时printf("%d",sum/num);else if(sum<num)//当分子小于分母时printf("%d/%d",sum,num);else//当分子大于分母时printf("%d %d/%d",sum/num,sum%num,num);return 0;
}

 💖运行结果💖

 ⭐文案分享⭐

永远相信美好的事情即将发生。--------2023.12.2💖

http://www.yayakq.cn/news/208243/

相关文章:

  • 网站建设职业情况wordpress 网站同步
  • 三五互联网站报价表网站维护收费标准
  • 回忆网站怎么做简单aspx网站开发
  • liunx做网站跳转服务器科技元素logo设计
  • php网站开发实例教程码源百度推广官网入口
  • html5技术可以制作网站吗湖北省城乡与住房建设厅网站
  • 网站建设逻辑组织的几种模型网站排名优化推广
  • 免费的h5制作网站模板做水果的网站有哪些
  • 重庆市建设网站首页企业名录软件
  • 怎么用vs做网站开发家装o2o平台有哪些
  • 门户网站改版方案企业网站建设 租用服务器
  • 申请免费网站公司做么做好网站运营
  • 南昌网站建设专业公司镇平微网站建设
  • 自主建站是什么意思网页设计结课论文
  • 英语工作室网站怎么做网站诚信认证怎么做
  • 一级a做爰片不卡的网站毕业设计网站开发选题依据
  • 陕西网站seo湛江企业网站建站模板
  • 网站手机自适应建设网站时的常见故障分类
  • 长安做外贸网站ps做的图怎么做成网站前端
  • 网站如何兼容ie6网站开发工程师项目经验怎么写
  • 长沙抖音推广代运营公司网站优化推广外包
  • 网站程序定制开发流程wordpress 连接微博专业版
  • 网站建设后台长沙新媒体运营公司
  • 可以做动画的网站都有哪些软件wordpress 中文标签插件
  • h5网站的优势陈铭生我来找你了
  • 企业网站上海熙哪个网站可以查企业信息
  • 通州网站建设是什么专业做制作网站
  • 相册管理网站模板下载高德地图可以搜索国外吗
  • pr效果做的好的网站有哪些微信公众平台和微网站的区别
  • 建设求职网站廊坊网站建设团队