为什么我的程序无法识别 pronic 号码?
int main()
{
int n , i , c;
printf("hello this prog can recognize pronic number\n\n");
printf("please enter an integer:\n");
scanf("%d" , &n);
for (i=1 ; i<=n ; i++)
{
c = n / i ;
}
if (c==i+1)
{
printf("this number is a pronic number");
}
else
{
printf("this number is NOT pronic number");
}
return 0;
}
最佳答案
仅在循环结束后才计算 c
的值。您应该随时检查 c
,如果发现该数字是一个 pronic 数字,则跳出循环。
另请注意,您正在执行整数除法,因此您可能会发现 c==i+1
,但 c*i
不会等于 n
:
int pronic = 0;
for (i = 1; i <= n; i++) {
if (i * (i + 1) == n) {
printf("%d is a pronic number.\n", n);
pronic = 1;
break;
}
}
if (!pronic) {
printf("%d is not a pronic number\n", n);
}
关于c - 为什么我的prog无法识别pronic号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52449832/