我试图解决这个棘手的问题,但是由于某种原因,我的代码做错了什么……我不知道为什么,但是我将尽我所能地解释。
连续积:编写一个程序,该程序从标准输入中读取一个正整数,并验证其是否等于三个自然数和连续数的乘积。例如,数字120等于4x5x6,因为对于数字90,没有任何三个连续自然数的乘积为90。如果有三个连续自然数的乘积为值,则程序应生成输出“ S”读取,如果没有则为“ N”。
Input
120
Expected Output
"S"
Input
60
Expected Output
"S"
Input
80
Expected Output
"N"
Input
120
Expected Output
"S"
这是我的代码:
#include <stdio.h>
int main(){
int int1,i,count=10,j,k,w=0;
scanf("%i",&int1);
for (i = 1; i <= count; ++i)
{
for (j = 1; j <= count+1; ++j)
{
for ( k = 1; k <= count+2; ++k)
{
if ((i==j+1 && i==k+2) && (i*j*k==int1)){
w=1;
}
}
}
}
if (w==0)
{
printf("N");
}
else{
printf("S");
}
}
所以基本上这样做是,我有3个循环,这些循环将以某种k*i*j
形式生成随机数...,它检查是否得到想要的(三个自然数和连续数的乘积)。这是一项任务。
我修改了您的代码。请让我知道问题是否仍然存在。所做的更改与WDS所说的完全一样。
#include <stdio.h>
int main(){
int int1,i,count=10,j,k,w=0,comp;
scanf("%i",&int1);
for (i = 1; i <= count; ++i)
{
comp = i*(i+1)*(i+2);
if(comp==int1)
{
w = 1;
}
}
if (w==0)
{
printf("N");
}
else
{
printf("S");
}
return 0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句