A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李鹏宇 中级黑马   /  2015-5-7 21:53  /  624 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问题描述:梯有N阶,上楼可以一步上一阶,也可以一步上二阶。编写一个程序,计算共有多少中不同的走法。
敲的代码如下:请大家给点意见

  1. #include<stdio.h>
  2. #include<stdlib.h>

  3. int judge(int n);

  4. int main (int argc, char **argv)
  5. {
  6.     int l,m,n,p,q;
  7.     for(l=123;l<=329;l++)
  8.     {
  9.         m=2*l,n=3*l;
  10.         p=l*1000+m,q=p*1000+n;
  11.         if(judge(q)==0)
  12.         //判断l、m、n是否符合要求。如果不符合就跳出本次循环,进入下次循环
  13.             continue;
  14.         printf("%d,%d,%d\n",l,m,n);
  15.     }
  16.     system("PAUSE");
  17.     return 0;
  18. }

  19. int judge(int n)
  20. {//用于判断整数n的各位数字是否相同,如果有想同的就返回0;否则返回1
  21.     int num[10],i,j,len=0,temp=n;
  22.     do
  23.     {
  24.         ++len;
  25.         temp=temp/10;
  26.     }while(temp);//求出n的位数
  27.     for(i=1;i<=len;i++)
  28.     {//将n的各位数字存入num[],并判断是否存在0及相同的数字,如果存在就返回0
  29.         if((num=n%10)==0)
  30.             return 0;
  31.         n=n/10;
  32.         for(j=1;j<i;j++)
  33.             if(num[j]==num)
  34.                 return 0;
  35.     }
  36.     return 1;
  37. }
复制代码



0 个回复

您需要登录后才可以回帖 登录 | 加入黑马