美文网首页
C语言经典习题(16~20)

C语言经典习题(16~20)

作者: 十字街86号 | 来源:发表于2020-03-23 00:54 被阅读0次
题目16

一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。

/*一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数。*/

#include<stdio.h>
int main(){
    
    int i;
    int n,sum=0;
    
    printf("找到的完数有:\n");

    for(i=1;i<1000;i++){
        
        for(n=1;n<i;n++){
            if(i%n == 0){
                sum = sum+n;
            }
        }
        
        if(sum == i){
            printf("%d\t",i);
            sum = 0;
        }
        else{
            sum = 0;    
        }
    }
    return 0;
    
} 
题目17

一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?

/*一球从100米高度自由落下,
每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?*/ 

#include<stdio.h>
int main(){
     float h = 100; //初始高度 
     float sum = 0; //路程 
     float l = h; 
    
    int num; //弹跳次数
    printf("请输入弹跳次数: "); 
    scanf("%d",&num); 
    int i; 
    for(i=1;i<num;i++){
        l = l/2;
        sum = 2*l + sum;
    }
    
    sum = sum + h;
    printf("第%d次落地时,共经过%f米,第%d次反弹会高%f米\n",num,sum,num,l/2);
    
    return 0;
}
题目18

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

/*猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,
还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,
又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。*/
#include<stdio.h>
int main(){
    int day; //天数
    printf("请问是几天前:"); 
    scanf("%d",&day); 
    
    int x1,x2; //x1 是当天的,x2 是下一天的桃子数量 
    // 因为 x2 = x1/2 + 1;
    // 所以 x1 = (x2+1)*2;
    x2 = 1;  //当前有的数量 
    int i;
    for(i=1;i<day;i++){
         x1 = (x2+1)*2;
         x2 = x1;
    } 
    printf("\n%d天前有%d个桃子\n",day,x1);
    
    return 0;
} 
题目19

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前n项之和

/*有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前n项之和*/

#include<stdio.h>
int main(){
    float a=2,b=1;
    float sum = 0;
    
    int num;
    printf("需要求前几项之和?\n");
    scanf("%d",&num);
    
    int i,c;    
    for(i=0;i<num;i++){
        sum = sum + a/b;
        c = a+b;
        b = a;
        a = c;
    }
    printf("\n前%d项之和等于:%f \n",num,sum);
    
    return 0;
}


题目20

求1+2!+3!+...+n!的和。

/*求1+2!+3!+...+n!的和。*/

#include<stdio.h>
int main(){
    int num;
    printf("1+2!+3!+...+n! 需要求前几项之和?\n");
    scanf("%d",&num);
    
    int i,j;
    double c = 1;
    double sum = 0;
    for(i=1;i<=num;i++){
        for(j=1;j<=i;j++){
            c = c*j;
        }

        sum = sum + c;
        c = 1;
    }
    
    printf("\n求得结果为:%lf",sum);
    return 0;
}

相关文章

  • C语言经典习题(16~20)

    题目16 一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程找出1000以内的所有完数...

  • C语言练习题:循环部分

    C语言练习题:循环部分(20题) 上一篇: C语言练习题:if语句部分 下一篇: C语言练习题:函数部分 求一正整...

  • C语言经典习题(11~15)

    题目11 将一个正整数分解质因数。例如:88 = 2 * 2 * 2 * 11。 题目12 利用条件运算符的嵌套来...

  • C语言经典习题(21~25)

    题目21 利用递归方法求n! 题目22 利用递归函数调用方式,将所输入的字符,以相反顺序打印出来。 题目23 有5...

  • C语言经典习题(6~10)

    题目6 输出9*9口诀. 题目7 打印梯形 和 旗子,旗子插再梯形上,旗子,梯子形式自己设定。 题目8 输出斐波那...

  • C语言经典习题(1~5)

    题目1: 有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 题目2: 企业发放的奖金根...

  • C语言练习题: 函数部分

    C语言练习题:函数部分(9题) 上一篇: C语言练习题:循环部分 下一篇: C语言练习题:数组部分 斐波那契,函数...

  • C语言习题讲解

    1.模块化 例一:100以内素数---存储数组1.判断素数isprim()2.2-100存入新的数组 2.数据类型...

  • C语言练习题: 数组部分

    C语言练习题:数组部分 数组实现冒泡排序(15题) 上一篇: C语言练习题:函数部分 求一正整数限定内所有素数 数...

  • C语言练习:if语句

    C语言练习题:if语句(12题) 下一篇: C语言练习题:循环部分 判定三角形类型 根据x的不同,输出不同的y 判...

网友评论

      本文标题:C语言经典习题(16~20)

      本文链接:https://www.haomeiwen.com/subject/pnyvyhtx.html