For loop c++;最低公倍数循环
我在这项任务中遇到了一些问题:你读取prom文件“perechi.in”中的数字n,你必须在文件“perechi.out”中写入LCM与n相等的数字对。我写了那段代码,但它崩溃了,我无法找出问题所在For loop c++;最低公倍数循环,for-loop,lcm,For Loop,Lcm,我在这项任务中遇到了一些问题:你读取prom文件“perechi.in”中的数字n,你必须在文件“perechi.out”中写入LCM与n相等的数字对。我写了那段代码,但它崩溃了,我无法找出问题所在 #include <iostream> #include <fstream> using namespace std; int main() { int a, b, c, ca, cb, i = 0, n; ifstream f("perechi
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int a, b, c, ca, cb, i = 0, n;
ifstream f("perechi.in");
ofstream g("perechi.out");
f >> n;
for (a = 1; a<n; a++){
for (b = 1; b<n; b++){
ca = a;
cb = b;
c = ca%cb;
while (c>0){
ca = cb;
cb = c;
c = ca%cb;
}
if (ca*cb / c == n){
i++;
}
}
}
g << i << "\n";
f.close();
g.close();
return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
int a,b,c,ca,cb,i=0,n;
IFF(“perechi.in”);
g流(“perechi.out”);
f>>n;
对于(a=1;a,代码中有两个逻辑错误
1) while
2) if(ca*cb/c==n){
请尝试以下代码
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int a, b, c, ca, cb, i = 0, n;
ifstream f("perechi.in");
ofstream g("perechi.out");
f >> n;
for (a = 1; a<=n; a++){
for (b = 1; b<=n; b++){
ca = a;
cb = b;
c = ca%cb;
if (c>0){
ca = cb;
cb = c;
c = ca%cb;
}
if (ca*cb == n){
i++;
}
}
}
g << i << "\n";
f.close();
g.close();
return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
int a,b,c,ca,cb,i=0,n;
IFF(“perechi.in”);
g流(“perechi.out”);
f>>n;
对于(a=1;a您的while
循环在c==0
时结束。因此ca*cb/c
除以0。这就是问题所在。谢谢!是的,while的更改效果更好。但是当我想将解决方案发送给您时,我得到0分,这意味着什么?如果此解决方案有效,那么您应该对其进行投票。然后单击“确定”。