c语言作业day1


1.求 1-----1000以内的完数 示例: 28 1 +4 +7 +14 +2 =28 完数:完美的数 除去本身以外的因子和等于本身

代码

ubuntu@ubuntu:2071$ cat exe5.c
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int i,j,sum;
	for(i=1;i<=1000;i++)
	{
		sum = 0;
		for(j=1;j<i;j++)
		{
			if(i%j==0)
			{
				sum=sum+j;
			}
		}
		if(sum==i)
		{
			printf("%d\n",i);
		}
	}
	return 0;
}
结果
6
28
496

2.打印奇数金字塔 & & & * & & * * * & * * * * * * * * * * * *

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int i,j,m;
	for(i=0;i<4;i++)
	{

		for(j=3;j>i;j--)
		{
			printf("& ");


		}


		for(m=0;m<1+2*i;m++)
		{
			printf("* ");
		}

		printf("\n");
	}

	return 0;
}

结果
& & & * 
& & * * * 
& * * * * * 
* * * * * * * 

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

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int i=0;
	int sum = 0;
	while(sum <100)
	{
		i++;
		sum = sum+i;
	}
	printf("%d %d\n",sum,i);

	
	return 0;
}
结果
105 14

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

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int i,m,a,b,n;
	a = 1;//第一项
	b = 1;//第二项
	printf("选择项数");
	scanf("%d",&n);
	printf("%d %d ",a,b);
	for(i=1;i<=n-2;i++)
	{

		m = a + b;//下一项
		printf("%d ",m);
		a = b;// 把第二项的值赋给第一项
		b = m;//把第三项的值赋给第二项
		//printf("%d ",b);
	}


	printf("\n");
	return 0;
}

结果
选择项数6
1 1 2 3 5 8 

5.使用嵌套循环产生下列图案,要求用for嵌套循环 F _FE __FED ___FEDC ____FEDCB _____FEDCBA

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int i,j,k,m;
	for(i=0;i<6;i++)
	{
		m = 70;
		for(j=0;j<i;j++)
		{
			printf("_");
		}
		for(k=0;k<=i;k++)
		{

			printf("%c",m);
			m = m-1;
		}
		printf("\n");
	}
	return 0;
}
结果
F
_FE
__FED
___FEDC
____FEDCB
_____FEDCBA

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

代码
#include <stdio.h>
#include <string.h>
int main(int argc, const char*argv[])
{
	int i,j;
	int sum = 1;
	for(i=0;i<9;i++)
	{
		sum = (sum + 1)*2;
	}
	printf("%d\n",sum);
	return 0;
}
结果
1534

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值