7.23 C语言基础

作业

1、求 1-----1000以内的完数 示例:

28 1 +4 +7 +14 +2 =28

完数:完美的数 除去本身以外的因子和等于本身

6 1+2+3 = 6

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int sum;
    for (int i = 1; i <= 1000; i++)
    {
        sum = 0;
        for (int j = 1; j < i; j++)
        {
            if (i % j == 0)
            {
                sum += j;
            }
        }
        if (sum == i) //判断完数
        {
            printf("%d\n", i);
        }
    }
    return 0;
}

2、打印奇数金字塔

& & & *

& & * * *

& * * * * *

* * * * * * *

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int n;
    printf("请输入金字塔层数:");
    scanf("%d", &n);
    n++;
    for (int i = 1; i < n; i++)
    {
        for (int j = n - 1 - i; j > 0; j--)
        {
            printf("&");
        }
        for (int j = 1; j <= i; j++)
        {
            printf("*");
        }
        for (int j = 1; j < i; j++)
        {
            printf("*");
        }
        printf("\n");
    }

    return 0;
}

3、求和直到超过100: 编写程序,计算从1开始递增的整数之和,直到和首次超过100时停止并输出当前的和以及累加了多少个数。

#include <stdio.h>
int main(int argc, char const *argv[])
{
    int n = 0;
    int flag = 0;
    for (int i = 1; i <= 100; i++)
    {
        int sum;
        sum += i;
        n++;
        if (sum > 100)
        {
            flag = 1;
        }
        if (flag == 1)
        {
            printf("累加了%d个数,和为%d\n", n, sum);
            break;
        }
    }
    return 0;
}

4.斐波那契数列: 编写程序,输出斐波那契数列的前n项(斐波那契数列指数列中的每一项都是前两项的和,第一和第二项是1)。

#include <stdio.h>

int main(int argc, char const *argv[])
{
    int n = 0; //  1  1  2  3  5  8  13  21
    int a = 1, b = 1;
    printf("请输入要输出斐波那契数列的项数:");
    scanf("%d", &n);
    for (int i = 1; i <= n; i++)
    {

        if (i <= 2)
        {
            printf("1  ");
        }
        else
        {
            int result = a + b;
            a = b;
            b = result;
            printf("%d  ", result);
        }
    }
    printf("\n");
}

5、使用嵌套循环产生下列图案,要求用for嵌套循环

F

_FE

__FED

___FEDC

____FEDCB

_____FEDCBA

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int n=0;
    printf("请输入金字塔层数:");
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
    {
        int letter='A'+n-1;
        for(int j=1;j<i;j++)
        {
            printf("_");
        }
        for(int c=1;c<=i;c++)
        {   
            printf("%c",(char)letter);
            letter--;
        }
        printf("\n");
    }
    return 0;
}

6、猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下 的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

#include<stdio.h>
int main(int argc, char const *argv[])
{
    int sum=1;
    for (int i=1;i<10;i++)
    {
        sum=(sum+1)*2;
    }
    printf("第一天摘了%d个桃子\n",sum);
    return 0;
}

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值