7-35 有理数均值 分数 20

2024-01-06 13:36
文章标签 均值 20 35 分数 有理数

本文主要是介绍7-35 有理数均值 分数 20,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

每日一言

我们把世界看错,反说它欺骗了我们。 --飞鸟集


题目

本题要求编写程序,计算N个有理数的平均值。

输入格式:

输入第一行给出正整数N(≤100);第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的有理数,其中分子和分母全是整形范围内的整数;如果是负数,则负号一定出现在最前面。

输出格式:

在一行中按照a/b的格式输出N个有理数的平均值。注意必须是该有理数的最简分数形式,若分母为1,则只输出分子。

输入样例1:

4
1/2 1/6 3/6 -5/10

输出样例1:

1/6

输入样例2:

2
4/3 2/3

输出样例2:

1


如果不懂化简可以去看
有理分式化简
点一下就可以跳转

思路一:先计算总结果,最后化简

(运行溢出)
本来想着先计算出总结果,最后再化简的,果然偷懒就拿不了满分 ┭┮﹏┭┮

代码:

#include<stdio.h>
#include<math.h>
int main()
{int n=0;scanf("%d",&n);int i=0;int fz[n];int fm[n];int tmp=0;for(i=0;i<n;i++){scanf("%d/%d",&fz[i],&fm[i]);}int j=0;long long zfm=1;long long zfz=0;for(i=0;i<n;i++){for(j=0;j<n;j++){if(j!=i){fz[i]*=fm[j];}}zfz+=fz[i];zfm*=fm[i];}zfm*=n;for(i=zfm;i>=2;i--){if(zfm%i==0&&zfz%i==0){zfm/=i;zfz/=i;break;}}if(zfz==0){printf("0");return 0;}if(zfm==1)printf("%lld",zfz);elseprintf("%lld/%lld",zfz,zfm);return 0;
}

解释:

  1. 用户输入n,表示分数的个数。
  2. 定义两个数组fz和fm,用于存储分子和分母。
  3. 使用循环,依次读取每个分数的分子和分母并存储到数组中。
  4. 初始化两个变量zfz和zfm,分别表示最终的分子和分母,初始值都为0和1。
  5. 使用两个嵌套循环,计算每个分数的通分分子,并将通分分子累加到zfz上。
  6. 计算所有分数的通分分母,并将其乘以n。
  7. 使用循环,从zfm开始递减,判断zfm和zfz是否都能整除以i,如果能整除,则将两者都除以i,即化简为最简形式。
  8. 最后,根据zfz和zfm的值的不同情况,进行输出。若zfz为0,则输出0;若zfm为1,则只输出zfz;否则输出zfz和zfm的值。这段代码实现了计算n个分数的和,并化简为最简形式的功能。

偷懒只能能拿到15分
在这里插入图片描述

思路二:每输入一个分数就化简一次

在这里插入图片描述

#include<stdio.h>
void simp(int* x,int* y)//化简分数
{int tmp=*x<*y?*x:*y;while(tmp>1){if(*x%tmp==0&&*y%tmp==0){*x/=tmp;*y/=tmp;break;}tmp--;}
}int main()
{int n =0;scanf("%d",&n);//输入的分数数目int a=0;int b=0;scanf("%d/%d",&a,&b);int zfz=a;int zfm=b;simp(&zfz,&zfm);//化简while(~scanf("%d/%d",&a,&b)){zfz=zfz*b+zfm*a;zfm*=b;simp(&zfz,&zfm);//化简}zfm*=n;//分母乘以n,来计算平均数simp(&zfz,&zfm);if(1==zfm)//如果分母为1,只打印分子就行{printf("%d",zfz);}else if(0==zfz)//如果分子为0,打印0printf("0");elseprintf("%d/%d",zfz,zfm);//正常打印return 0;
}

在这里插入图片描述


结语

请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!


都看到这里啦!真棒(*^▽^*)

可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家

编程小白写作,如有纰漏或错误,欢迎指正


这篇关于7-35 有理数均值 分数 20的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/576513

相关文章

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

【JavaScript】LeetCode:16-20

文章目录 16 无重复字符的最长字串17 找到字符串中所有字母异位词18 和为K的子数组19 滑动窗口最大值20 最小覆盖字串 16 无重复字符的最长字串 滑动窗口 + 哈希表这里用哈希集合Set()实现。左指针i,右指针j,从头遍历数组,若j指针指向的元素不在set中,则加入该元素,否则更新结果res,删除集合中i指针指向的元素,进入下一轮循环。 /*** @param

『功能项目』战士的平A特效【35】

我们打开上一篇34武器的切换实例的项目, 本章要做的事情是在战士的每次按A键时在指定位置生成一个平A特效 首先将之前下载的技能拖拽至场景中 完全解压缩后重命名为AEffect 拖拽至预制体文件夹 进入主角动画的战士动画层级 双击第一次攻击 选择Animation 创建事件 创建的动画事件帧放在攻击动画挥剑指定处 命名为PerpetualAtt

【语句】如何将列表拼接成字符串并截取20个字符后面的

base_info = "".join(tree.xpath('/html/head/script[4]/text()'))[20:] 以下是对这个语句的详细讲解: tree.xpath('/html/head/script[4]/text()')部分: tree:通常是一个已经构建好的 HTML 文档树对象,它是通过相关的 HTML 解析库(比如 lxml)对 HTML 文档进行解

NoSQL数据库的35个应用场景

现在我们站在各个用例的角度上来考虑那种系统适合于这些用例。   你的意见是?   首先,我们要纵览各种数据模型。这些模型的分类方法来自于Emil Eifrem和NoSQL databases。   文档数据库   源起:受Lotus Notes启发。   数据模型:包含了key-value的文档集合   例子:CouchDB, MongoDB   优点:数据模型自然,编

C++20中支持的非类型模板参数

C++20中支持将类类型作为非类型模板参数:作为模板参数传入的对象具有const T类型,其中T是对象的类型,并且具有静态存储持续时间(static storage duration)。       在C++20之前,非类型模板参数仅限于:左值引用类型、整数类型、指针类型、指向成员类型的指针、枚举类型、std::nullptr_t。在C++20中,它已扩展并支持:浮点类型、字面量类类

[C/C++入门][进制原理]31、求分数序列和

题目来自于信息学奥赛 1078 分析: 这道题看起来比较复杂,实际上只需要通过两个公式,一次性求出分母和分子,然后把这个求出来的数加入到变量和中。甚至都不需要知道总共游哪些数。数组都用不上。循环就能解决。 #include <iostream>#include <iomanip> // 用于格式化输出using namespace std;int main() {double s

Google 实现量子霸权!3分20秒运算,世界第一超算要跑1万年!

大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 暴走大数据 点击右侧关注,暴走大数据! By  大数据技术与架构 场景描述:谷歌宣称“量子霸权”已经实现,他们首次在实验中证明了量子计算机对于传统架构计算机的优越性:在世界第一超算 Summit 需