文章目录
- 每日一言
- 题目
- 解题思路
- 代码
- 结语
每日一言
现在,我怕的并不是那艰苦严峻的生活,而是不能再学习和认识我迫切想了解的世界。对我来说,不学习,毋宁死。——罗蒙诺索夫
题目
输入两个整数m和n,写一个函数average,求两个整数的平均值,考虑整数过大溢出的问题
解题思路
求平均数大家一上来肯定能想到:两数相加再除二
但是这样不合题意,有可能两数都特别大,相加以后就溢出了
我们可以换一种求平均值的算法
如图所示,让较小的的一个数加上两数相减再除二也可以求出两数的平均值
即 y + (x - y) / 2
代码
#include<stdio.h>
int average(int x, int y)
{//判断大小if (x > y)return y + (x - y) / 2;return x + (y - x) / 2;
}int main()
{int m = 0;int n = 0;scanf("%d %d", &m, &n);printf("%d",average(m, n));return 0;
}
可能你会说再求平均值时判断大小没用,你可以试试以下两个示例:
3和4
4和3
看看输出结果是否相等
结语
请给自己些耐心,一口吃不成胖子。
山外青山楼外楼,莫把百尺当尽头。
保持空杯心态加油努力吧!
都看到这里啦!真棒(*^▽^*)
可以给作者一个免费的赞赞吗,这将会鼓励我继续创作,谢谢大家
编程小白写作,如有纰漏或错误,欢迎指正