两个整数求平均值,防止溢出的问题
两个整数求平均值,防止溢出的问题
http://bylijinnan.iteye.com/blog/1463337
bigInteger 没有上限,取决于计算机的内存;
https://www.jianshu.com/p/8b89ab19db84
其实也可以这样:
package com.stono;public class Test02 {public static void main(String[] args) {int i1 = Integer.MAX_VALUE-2; // 214748 3645int i2 = Integer.MAX_VALUE-3; // 214748 3644System.out.println((i1+i2)/2); // 直接相加就溢出了int sa = sumAverage(i1,i2);System.out.println(sa);System.out.println(1/2); // 这个等于0的;System.out.println(sumAverage(7, 7));System.out.println(7/2);}private static int sumAverage(int i1, int i2) {int i1sa = i1/2;int i2sa = i2/2;int sasa = (i1%2+i2%2)/2; // 防止两个奇数的末位被抹掉了;return i1sa+i2sa+sasa;}}
用位操作提升一下速度:
private static int sumAverage(int i1, int i2) {int i1sa = i1>>1;int i2sa = i2>>1;int sasa = (i1&1+i2&1)>>1; // 防止两个奇数的末位被抹掉了;return i1sa+i2sa+sasa;}
转载于:https://www.cnblogs.com/stono/p/8507156.html
两个整数求平均值,防止溢出的问题相关推荐
- c语言求两个数的乘积和商,输入两个整数,求出它们的商数
编写一个程序,输入两个整数,计算并输出它们的和,乘积,差,商和余数,C语言, #includevoidmain(){inta,b;printf("Inputtwointegers:" ...
- 两个整数相加减是否溢出
#include<stdio.h> #include<stdint.h>// 两个整数相加减,没有溢出时返回0 int tadd_ok(int x, int y) {int s ...
- 不同符号的两个整数求余和取模的计算技巧(规律)
文章目录 求余函数和取模函数的区别 x 和 y 符号不同,求余数和模数的技巧 求余的运算规律(技巧) 取模的运算规律(技巧) 求余函数和取模函数的区别 求余函数rem(x,y) 和取模函数 mod(x ...
- 用c语言编写两整数乘积,c语言两个数相乘求积 c语言输入两个整数求乘积
C语言中求两数相乘的程序? 思路:double类型的范围: -1.7*10(-308)-1.7*10(308),如果两个数的乘积不超过这样的精度,可以直接使用*符号进行运算. 参考代码: #inclu ...
- JAVA取两个整数的中间值,不出现溢出
取两个整数中间值不溢出 今天用二分写算法的时候发现竟然超时了,后面调试发现原来是2个整数相加溢出变成负数了,记录一下不溢出取中间值的方法 下面是一般取中间值的写法 int m = (low+high) ...
- a除以b的编程怎么写C语言,输入a,b两个整数,编程求出a除以b得到的商和余数.c语言...
C语言编程问题 编程任意输入两个实数a和b,计算下面函数的值,并输出y值. a-b a>b y= a/b a #includevoidmain(){\x09floata,b,y;\x09prin ...
- python list排序_python里对list中的整数求平均并排序
python里对list中的整数求平均并排序 本文主要记述了使用Python将list重点整数求平均值之后在进行排列的过程,并把代码分享给大家, 问题 定义一个int型的一维数组,包含40个元素,用来 ...
- 【Python基础】①求两个整数的和与平均值
#输入两个整数,求其和与平均值 m=eval(input("请输入整数1:")) n=eval(input("请输入整数2:")) s=m+n avg=(m+n ...
- java输入两个整数_求平均值._用C语言编写:完成从键盘输入两个整数a和b,求平均值ave,并输出平均值...
#includevoid main(){int a,b,ave;printf("输入两个整数:');scanf("%d%d",&a,&b);ave=(a+ ...
最新文章
- 如何从ATS获取客户端平均响应时间(单位,毫秒)?
- 【转】Android source build/envsetup.sh学习笔记
- 经验传承:谈色彩设计方法
- c语音 udp最大长度_c语言udp自定义头文件 网络通信程序
- 如何使用 PTS 快速发起微服务压测
- 程序员必备技能-科学砍需求
- 如果把西游记倒过来看,这才是真正的社会
- Identity Server 4 预备知识 -- OpenID Connect 简介
- vscode 里解决跨域的插件_VSCode里的逆天插件,可边写代码边画逻辑流程图了
- 典型相关分析_微生物多样研究—微生物深度分析概述
- python新手入门总结_写给已有编程经验的 Python 初学者的总结
- 客运售票员_「我做一天春运人」体验通村客车售票员兼安全员 温馨慢车上我背着太阳奔跑...
- Python panads数据处理二
- iZotope RX 9 for Mac(数字音频修复工具)
- R语言作业wine 数据
- BTA12A-ASEMI的12A双向可控硅IGBT管
- 计算机技术对英语课堂,信息技术在英语课堂中的运用
- OSChina 周五乱弹 —— 睡觉都枕着小姐姐
- Matlab篇----常用的回归分析Matlab命令(regress篇)
- 深度学习(三)——深层神经网络