循环结构 编程例题

简介: 循环结构 编程例题

使用循环结构求:

水仙花数(它的各位数字的立方和等于它自己的3位数)

小于1000的所有的同构数(平方后低位的数恰好等于该数的数是同构数

计算组合数

水仙花数

隐含条件是三位数

使用for循环:

for(i=101;i<1000;i++)

循环体中·分别表示三个数

a=i%10

b=i/10%10

c=i/100

在循环体中使用if语句判断是否符合条件,符合则输出。

#include <stdio.h>
int main (void)
{
  int i,a,b,c;
  for (i=101;i<1000;i++)
  {
    a=i%10;
    b=i/10%10;     //  * / %  三种运算符优先级相同,此处从左往右进行运算
    c=i/100;
    if (i==a*a*a+b*b*b+c*c*c)
    {
      printf("%d\n",i);
    }
  }
  return 0;
}

求小于1000的所有同构数:

对于一位数:“低位的数"恰好就是平方后的个位数
对于两位数:
“低位的数"是平方后的数的十位和个位

对于三位数:"低位的数"是平方后的数的百位、十位和个位
所以可以分开讨论
分别三次
使用for循环

``

#include <stdio.h>
int main (void)
{
  int i,a,b,c;  //int是有符号型整数,所能存储的最大整数为2^31-1)
  long int s;   //即int型所能存储的最大整数为2147483648(21亿多)
                //所以s可以定义为int
  for (i=1;i<10;i++)  
  {
    s=i*i;
    a=s%10;     //由于由取余运算,所以s不能是浮点型!!
    if (a==i)
      printf("%d\n",i);
  }
  for (i=10;i<100;i++)
  {
    s=i*i;
    a=s%10;
    b=s/10%10;
    if (i==a+b*10)
      printf("%d\n",i);
  }
  for (i=101;i<1000;i++)
  {
    s=i*i;
    a=s%10;
    b=s/10%10;
    c=s/100%10;
    if (i==a+b*10+c*100)
      printf("%d\n",i);
  }
  return 0;
}

组合数

即两次阶乘

#include <stdio.h>
int main (void)
{
  double m,n,a,b;
  int i,k;
  printf("请输入m、n(m<n):\n");
  scanf("%lf%lf",&m,&n);
  a=1;
  b=1;
  for (i=1;i<=n;i++)
  {
    a*=i;
  }
  for (k=1;k<=m;k++)
  {
    b*=k;
  }
  printf("%lf",b/a);
  return 0;
}


相关文章
|
6月前
|
C语言
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
|
5月前
|
C语言
c语言循环题目
c语言循环题目
|
C语言
C语言for循环必备练习题
C语言for循环必备练习题
422 0
C语言for循环必备练习题
|
6月前
|
算法 C++
C++006-C++分支结构练习题
C++006-C++分支结构练习题
|
机器学习/深度学习 数据安全/隐私保护
循环语句的经典例题(1)
循环语句的经典例题(1)