当前位置:   article > 正文

7.23作业

7.23作业

1、求1~1000以内的完数?

示例:
28
1+4 +7+14 +2 =28
完数:完美的数
除去本身以外的因子和等于本身
1+2+3 =6

代码展示

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	int i;
	int sum =0;
	printf("完数为:");
	for(i=1;i<=1000;i++){
		for(int j=1;j<i;j++){//算出i的除本身以外因数之和
			if(i%j==0){
				sum +=j;
			}
		}
		if(sum == i){//判断是否为因数之和是否等于自身
			printf("%d ",i);
		}
		sum =0;//判断后把求和置0
	}
	return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

运行结果

在这里插入图片描述

2.打印奇数金字塔

在这里插入图片描述

代码展示

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	int n;
	int i,j,k;
	printf("请输入奇数金字塔的高度:");
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		for(j=1;j<=n-i;j++){
			printf("& ");
		}
		for(k=1;k<=2*i-1;k++){
			printf("* ");
		}
		printf("\n");
	}
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

运行结果:

在这里插入图片描述

3.求和直到超过100

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

代码展示

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	int i,sum=0;
	int count =0;
	for(i=1;sum<=100;i++){
		sum +=i;
		count++;
	}
	printf("首次超过100的和为:%d,累加次数为:%d\n",sum,count);
	return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

运行结果:

在这里插入图片描述

4.斐波那契数列

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

代码展示

#include <stdio.h>
#include <string.h>
int math(int n){
	if(n==1||n==2){
		return 1;
	}else{
		return math(n-1)+math(n-2);
	}
}

int main(int argc, const char *argv[])
{
	int n;
	printf("斐波那契数列的前n项:n=");
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		printf("%d ",math(i));
	}
	return 0;
}



  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

运行结果:

在这里插入图片描述

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

在这里插入图片描述

代码展示

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	char c = 'F';
	int i,j,k;
	for(i=1;i<=6;i++){
		for(j=1;j<i;j++){
			printf("_");
		}
		for(k=1;k<=i;k++){
			printf("%c",c--);
		}
		printf("\n");
		c='F';
	}
	return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

运行结果:

6.猴子偷桃

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

代码展示

#include <stdio.h>
#include <string.h>

int main(int argc, const char *argv[]) {
	int peach = 1;
	int i = 1, j = 0;
	while (i < 10) {
		peach = (peach + 1) * 2;
		i++;
	}
	printf("共有%d桃子\n", peach);
	int sum = 0;
	while (j < 9) {
		sum = peach;
		sum = sum / 2 + 1;
		peach -= sum;
		j++;
		printf("第%d天,猴子吃了%d个桃子,还剩%d个桃子\n", j, sum, peach);
	}
	return 0;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

运行结果:

在这里插入图片描述

7.逆序输出

编写程序,输入一个正整数n,将其逆序输出,例如输入12345,输出54321

代码展示

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
	int a;
	int i;
	printf("请输入一个正整数:");
	scanf("%d",&a);
	printf("逆序为:");
	for(i=0;;i++){
		printf("%d",a%10);
		if(a<10){
			break;
		}
		a /=10;
	}
	printf("\n");
	return 0;
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

运行结果:

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/寸_铁/article/detail/904514
推荐阅读
相关标签
  

闽ICP备14008679号