回 帖 发 新 帖 刷新版面

主题:求题解

这是求100-499之间的水仙花数的程序
#include "stdio.h"                                            
void main()
{
  int i,j,k,m,n;
  for(i=1;i<=4;i++)
  for(j=0;j<=9;j++)
     for(k=0;k<=9;k++)
     {
        m=i*100+j*10+k;
        n=i*i*i+j*j*j+k*k*k;
        if(m==n)
            printf("%5d",m);
      }
}
上面这个内循环执行多少次,为什么?(我的理解是每个数都执行一次,内循环执行完一次跳到第一个for继续判断)


#include "stdio.h"
void main()
{
  int i,j,k,m,n;
  for(i=1;i<=4;i++)
  for(j=0;j<=9;j++)
     for(k=0;k<=9;k++)
     {
        m=i*100+j*10+k;
        n=i*i*i+j*j*j+k*k*k;
        if(m==n)
            printf("%5d",m);
      }
}

(我的理解是这个也是每个数都执行一次 - -)

求正解  谢谢啦  - -#

回复列表 (共3个回复)

沙发

循环次数为4*10*10 = 400 次(3次循环,所以循环次数相乘),第3个for循环10次后跳到第2个for循环,第2个for循环10次后跳到第1个for循环.

板凳

一共执行了4*10*10次,看下书吧,for语句的作用域

3 楼


#include "stdio.h"
#include <cstdlib>
void main()
{
  int i,j,k,m,n,count = 0;
  for(i=1;i<=4;i++)
  for(j=0;j<=9;j++)
     for(k=0;k<=9;k++)
     {
        count++;
        m=i*100+j*10+k;
        n=i*i*i+j*j*j+k*k*k;
        if(m==n)
            printf("%5d \n",m);
        
      }
     printf("执行了:");
     printf("%5d \n",count);
     system("pause");
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册