• 循环结构经典程序


    1.输入一个正整数,求这个数的所有因子,并输出。例如24的因子1 2 3 4 6 12.

     1 #include<iostream.h>
     2 void main()
     3 {
     4     int n;
     5     cin>>n;//接收一个数
     6     if(n>0)//n大于0
     7     {
     8         cout<<n<<"的因子:";
     9         for(int i=1;i<n;i++)//循环
    10         {
    11             if(n%i==0)//判断整除
    12             {
    13                 cout<<i<<"  ";//输出因子
    14             }
    15         }
    16     }
    17     else
    18     {
    19         cout<<"error"<<endl;
    20     }
    21     cout<<endl;
    22 }

    2. 输出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如153是一个“水仙花数”,因为153=13+53+33

     1 #include<iostream.h>
     2 void main()
     3 {
     4     int gw,sw,bw;
     5     cout<<"水仙花数:";
     6     for(int n=100;n<=999;n++)
     7     {
     8         gw=n%10;
     9         sw=(n/10)%10;
    10         bw=n/100;
    11         if(n==gw*gw*gw+sw*sw*sw+bw*bw*bw)
    12         {
    13             cout<<n<<"  ";
    14         }
    15     }
    16     cout<<endl;
    17 }

     3.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如:6的因子分别是:1,2,3,而6=1+2+3,所以6是完数。编程输出1000之内的所有完数

    View Code
     1 #include<iostream.h>
     2 void main()
     3 {
     4     for(int n=2;n<1000;n++)
     5     {
     6         int sum=0;
     7         int lasti;
     8         for(int i=1;i<n;i++)
     9         {
    10             if(n%i==0)
    11             {
    12                 sum+=i;
    13                 lasti=i;
    14             }
    15         }
    16         if(n==sum)
    17         {
    18             cout<<n<<"=";            
    19             for(i=1;i<n;i++)
    20             {
    21                 if(n%i==0)
    22                 {
    23                     if(lasti!=i)
    24                         cout<<i<<"+";
    25                     else
    26                         cout<<i;
    27                 }
    28             }
    29             cout<<endl;
    30         }
    31     }
    32 }

     4.输入两个正整数,求二者的最大公约数和最小公倍数.

    View Code
     1 #include <stdio.h>
     2 void main(void)
     3 {
     4     int m,n,max,min,num;
     5     printf("请输入两个整数并用空格分隔:");
     6     scanf("%d%d",&m,&n);
     7     //printf("最大公约数%d最小公倍数%d",zdgys(m,n),zxgbs(m,n));
     8     max=(m>=n)?m:n;
     9     min=(m<=n)?m:n;
    10     for(num=min;num>=1;num--)
    11     {
    12         if(m%num==0&&n%num==0)
    13         {
    14             break;
    15         }
    16     }
    17     printf("%d和%d的最大公约数是%d\n",m,n,num);
    18     
    19     for(num=max;num<=m*n;num++)
    20     {
    21         if(num%m==0&&num%n==0)
    22         {
    23             break;
    24         }
    25     }
    26     printf("%d和%d的最小公倍数是%d\n",m,n,num);
    27 }
  • 相关阅读:
    SPI Flash(W25Q16DV) 驱动
    SPI Flash(W25Q16DV) 基本操作
    SPI OLED 驱动
    dategrip破解
    mysql中find_in_set()函数的使用
    MYSQL中,CAST函数的使用规则
    关于Java对象作为参数传递是传值还是传引用的问题
    easyPOI导出excel报错
    ### Cause: java.lang.reflect.UndeclaredThrowableException
    用count(*)还是count(列名) || Mysql中的count()与sum()区别
  • 原文地址:https://www.cnblogs.com/shajianheng/p/2749453.html
Copyright © 2020-2023  润新知