注册 登录
编程论坛 Golang论坛

关于循环问题中只输出一个no的问题,急!

snowman666 发布于 2022-10-13 20:58, 1178 次点击
完全数是这样一个整数,它加上100后是一个完全平方数,它加上268也是一个完全平方数。编程程序求出m,n之间所有完全数(包括m和n),其中n>m。
输入形式:输入一行,包括整数m和n。
输出形式:输出一行,输出m与n间的所有完全数,各数之间以空格分隔。若没有,则输出no。
样例输入:1 10000
样例输出: 21 261 1581
#include<stdio.h>
#include<math.h>
int main()
{
    int m,i,n;
    double k1,k2;
    scanf("%d%d",&m,&n);
    for(i=m;i<=n;i++)
    {
        k1=sqrt(i+100);
        k2=sqrt(i+268);   
        if((fabs(k1-(int)k1)<1e-6)&&(fabs(k2-(int)k2)<1e-6))
            printf(" %d",i);
    }
        
   
        return 0;
}
主体部分已经完成,但那个输出no的地方实在不知道怎么搞了,循环里怎么才能只输出一个no啊
救救孩子吧!已经卡了一个多小时了!!!
2 回复
#2
snowman6662022-10-13 20:59
那个题目下面是我写的代码,不是题目
#3
whinda2022-10-22 03:24
都会用if..elseif了,你可以加个累计标志变量来计数。
no :=0
if 完全数{
     printf(完全数)
     no=0
}else if n>=1 {
     no++
      }else{
        printf("no")
          no++
      }
}
1