关于整数溢出问题求解
样例输入
123456789 987654321
0 0
输出应该为
13548070123626141
但我的输出结果是
-7461446
结果显示溢出了,求问如何解决
#include <iostream>
using namespace std;
void change(int *a, int *b)
{
if(*a < *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
}
int gcd(int a, int b)
{
int temp;
change(&a, &b);
while(a%b != 0)
{
temp = a % b;
a = b;
b = temp;
}
return b;
}
int main()
{
long a, b,gcd_result,i = 0;
do{
cin >> a;
cin >> b;
gcd_result = gcd(a,b);
cout << (long)(a*b/gcd_result) << endl;
}while(a != 0 && b != 0);
return 0;
}
123456789 987654321
0 0
输出应该为
13548070123626141
但我的输出结果是
-7461446
结果显示溢出了,求问如何解决
#include <iostream>
using namespace std;
void change(int *a, int *b)
{
if(*a < *b)
{
int temp = *a;
*a = *b;
*b = temp;
}
}
int gcd(int a, int b)
{
int temp;
change(&a, &b);
while(a%b != 0)
{
temp = a % b;
a = b;
b = temp;
}
return b;
}
int main()
{
long a, b,gcd_result,i = 0;
do{
cin >> a;
cin >> b;
gcd_result = gcd(a,b);
cout << (long)(a*b/gcd_result) << endl;
}while(a != 0 && b != 0);
return 0;
}
...全文
相关推荐
基于整型变量一致化的整数溢出检测 (2008年)
该方法的核心思想是通过将整数溢出检测问题抽象为多元不等式组求解问题来提高检测的准确性和效率。具体来说,这种方法包括以下几个步骤:1.
057在matlab中通过yalmip平台调用cplex求解器,可用于求解MILP问题,适合于综合能源系统优化求解.zip
- MILP问题可能有多个局部最优解,设置合适的求解参数有助于找到全局最优解。- 对于大规模问题,合理设置CPLEX的内存和时间限制,以防止求解过程过于耗时或内存溢出。
整数运算中的问题和解决方法 (2005年)
本文将基于C语言的语境,探讨整数运算中遇到的问题以及如何通过编程技术解决这些问题。首先,整数运算中遇到的问题主要体现在整数溢出和模运算的处理上。
二进制程序整型溢出漏洞的自动验证方法1
**约束求解**:最后,通过约束求解器生成新的输入样本,这些样本能够触发整型溢出并可能导致缓冲区溢出。这一步骤将IO2BO漏洞的验证转化为对传统缓冲区溢出漏洞验证的问题。
大整数运算PPT学习资料
同样,如果两个整数a, b中一个或两个超过long型范围时,a+b, a-b, a*b, a÷b如何求解?解决这些问题的关键是使用算法的思想方法来解决大整数(超长整数)的算术运算问题。


