• 附加题4


    6.输出水仙花数。输入一个正整数n,输出所有的n位水仙花数。

    #include<stdio.h>
    #include<math.h>
    int main()
    {
        int a,x,n,i,p,w;
        double s;
        x=100;
        printf("输入一个正整数n:
    ");
        scanf("%d",&n);
        i=0;
        while(n>=3&&n<=7&&i<=n)
        {
        s=0;
        p=x;
        for(i=0;i<=n&&x!=0;i++)
        {
    
            a=x%10;
            x=x/10;
            s=s+pow(a,n);
            
        }    
        if(s==p&&i==n)
            {
                printf("s=%.0lf
    ",s);
                printf("i=%d
    ",i);
            }    
            
        x=p+1;    
        }; 
        return 0;
    } 

     7.求最大公约数和最小公倍数。输入两个整数m,n(m,n小于1000)

    #include<stdio.h>
    int main()
    {
        
        int  m,n,i,j;
        int max,min;
        max=0;
        min=10000000;
        printf("请输入m
    ");
        scanf("%d",&m);
        printf("请输入n
    ");
        scanf("%d",&n);
        for(i=m;i>=2;i--)
        for(j=n;j>=2;j--)
        if(m%i==0&&n%j==0&&i==j)
            {
                if(max<i)
                max=i;
            }
            printf("最大公因数:%d
    ",max);
        
        for(i=1;i<=10000;i++)
        for(j=1;j<=10000;j++)
        if(m*j==n*i)
            {
                if(min>i*n)
                min=i*n;
            }
            printf("最小公倍数:%d
    ",min);
            
        return 0;
    } 

    8.高空坠球。皮球从height高度下落,处第后反弹到元高度的一半。第n次落地时在空中经历了多少路程,第n次的高度是多少。

    #include<stdio.h>
    int main()
    {
    double height,x,s;
    int n,i;
    printf("请输入次数");
    scanf("%d",&n);
    printf("请输入高度");
    scanf("%lf",&height);
    s=x=height;
    for(i=1;i<=n;i++)
    {
    x=x/2;
    s=s+x;
    }
    printf("弹起的高度为:%.1lf ",x);
    printf("总共的路程为%.1lf ",s);
    return 0;
    }

     

    9.打印菱形 星号“*”图案。输入一个正整数n(n为奇数)打印高度为n。

    #include<stdio.h>
    int main()
    {
        int i,n,j;
        printf("请输入n:");
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
            if(i<=n/2)
                for(i=1;i<=n/2;i++)
                {
                    for(j=1;j<=n-i+2;j++)
                    printf(" ");
                    for(j=1;j<=2*i-1;j++)
                    printf(" *");
                    printf("
    ");
                }
            if(i>n/2)
                for(i=n/2+1;i<=n;i++)
                {
                    for(j=1;j<=i*3-n;j++)
                    printf(" ");
                    for(j=1;j<=(n-i)*2+1;j++)
                    printf(" *");
                    printf("
    ");
                }
                
        }
        return 0;
    } 

    10.猴子吃桃问题。一只猴子第一天摘下若干个桃子,吃掉一半,有多吃了一个,每天都吃掉前一天的一半,再多吃一个。问第一天总共摘了多少个桃子。

    #include<stdio.h>
    int main()
    {
        int x,n,i;
        printf("请输入n:");
        scanf("%d",&n);
        x=1;
        for(i=n;i>1;i--)
        x=2*(x+1);
        printf("总共摘了%d",x);
        return 0;
    } 

    知识点

    1.while,do-while,for循环的用法

    2.嵌套循环的用法

    3.break是结束一个循环,continue是跳过一个语句

    遇到的问题与解决方法

    在做题的时候,想用break结束多个循环,发现不行,于是改变思路用比大小的方法解决了,break无法停止多个魂环的问题

  • 相关阅读:
    对象引用与对象克隆
    谁被回收了
    SpringMVC 返回json
    html基础
    org.hibernate.HibernateException: No Session found for current thread
    VB6之SendMessage模拟拖放事件
    VB6之GIF分解
    VB6之反编译工具VBRezQ
    VB6之WebBrowser控件
    (转载)VB6之鼠标移出事件
  • 原文地址:https://www.cnblogs.com/zscswd1368/p/6142613.html
Copyright © 2020-2023  润新知