2024/1/2

作业1:

输入一个数,计算是否是完美数

完美数:除本身约数和等于本身

eg:6:1 2 3          1+2+3==6

#include 

int main(int argc, const char *argv[])
{
	int i,num,sum=0;//定义三个变量
		printf("please enter a number:");//提示输入一个数
		scanf("%d",&num);//输入数
		for(i=1;i

 效果图:

2024/1/2_第1张图片

作业2: 

2.1 输入一个数,判断是否是素数

#include 
#include //使用sqrt,引入math.h的头文件
int main(int argc, const char *argv[])
{
		int i,num,count=0;//定义三个变量
		printf("please a number:");//提示输入
		scanf("%d",&num);//输入一个num
		for(i=2;i<=sqrt(num);i++)//遍历2-根号下num
		{
			if(num%i==0)//记录num因子的个数
			{
				count++;
			}
		}
		if(count==0&&num!=1)//当count的个数为0,说明num没有除了1和自身没有其他因子,为素数;注意:1除外
		{
			printf("num=%d 是素数\n",num);//条件成输出是素数
		}else{
			printf("num=%d 不是素数\n",num);//反之输出不是素数
		}
	
	return 0;
}

2.2 实现图形打印(四个图片)

2.2.1
#include 

int main(int argc, const char *argv[])
{

		int i,j;//定义两个循环变量
		for(i=1;i<=4;i++)//外层控制行
		{
			for(j=1;j<=i;j++)//内层控制列
			{
				printf("*");//循环打印 *
			}
			printf("\n");
		}	
		return 0;
}

效果图:

2024/1/2_第2张图片 

 2.2.2
#include 

int main(int argc, const char *argv[])
{		
		
		int i,j,n;//定义循环变量以及打印的行数
		printf("please enter n:");//提示输入
		scanf("%d",&n);//输入要打印的行数
		for(i=1;i<=n;i++)//外层控制行
		{
			for(j=1;j<=n+1-i;j++)//内层控制列
			{
				printf("*");//循环打印 * 
			}
			printf("\n");
		}

		return 0;
}

效果图:

2024/1/2_第3张图片 

2.2.3
#include 

int main(int argc, const char *argv[])
{				

		int i,j,n;//定义两个循环变量以及一个变量n用来存储行数
		printf("please enter n:");//提示输入行数
		scanf("%d",&n);//输入要打印的行数
		for(i=1;i<=n;i++)//外层控制行
		{
			for(j=1;j<=n+1-i;j++)//内层控制列
			{
				printf(" ");//先循环打印空格
			}
			for(j=1;j<=i;j++)
			{
				printf("*");//再循环打印 * 
			}
			printf("\n");
		}

		return 0;
}

效果图:

2024/1/2_第4张图片 

2.2.4
#include 

int main(int argc, const char *argv[])
{				

		int i,j,n;//定义两个循环变量以及一个变量n用来存储行数
		printf("please enter n:");//提示输入行数
		scanf("%d",&n);//输入要打印的行数
		for(i=1;i<=n;i++)//外层控制行
		{
			
			for(j=1;j<=i;j++)//内层控制列
			{
				printf(" ");//先循环打印空格
			
			}
			for(j=1;j<=n+1-i;j++)
			{
				printf("*");//再循环打印 * 
			}
			
			printf("\n");
		}

	
		return 0;
}

效果图:

2024/1/2_第5张图片 

2.2 练习穷举算法:百钱买百鸡 

#include 

int main(int argc, const char *argv[])
{				
		int x,y,z;//定义三个变量存储公鸡、母鸡和小鸡的个数
		for(x=0;x<=20;x++)//公鸡数量最小为0只,最大为20只
		{
			for(y=0;y<=33;y++)//母鸡数量最小为0只,最大为33只
			{
				for(z=0;z<=100;z++)//小鸡数量最小为0只,最大为100只
				{
					if(x*5+y*3+z/3==100 && x+y+z==100 && z%3==0)//百钱买百鸡,则三种鸡的数量加起来为一百只并且一共有一百元,且小鸡一钱三只
					{
						printf("x=%d y=%d z=%d\n",x,y,z);//穷举出符合上面表达式的所有情况
					}
				}
			}
		}
		return 0;
}

效果图:

2024/1/2_第6张图片 

2.3 输入一个数判断回文数 

#include 

int main(int argc, const char *argv[])
{				
		int i,value;//定义循环变量i,value用来存储num的初始值
		int num;//定义num存储输入的数
		int sum=0;//定义sum存储num的倒序
		printf("plaese enter a number:");//提示输入num
		scanf("%d",&num);//输入num的值
		value=num;//存储num的初始值
		while(num!=0)//循环
		{
			sum=sum*10+num%10;//用来计算num各个位的倒序的值
			num/=10;//将num循环对10取商,以便于下次取余
		}
	
		if(sum==value){//判断num各个位倒序之后与num初始值是否相等
			printf("num=%d 是回文数\n",value);//相等是回文数
		}else{
			printf("num=%d 不是回文数\n",value);//反之则不是
		}

		return 0;
}

效果图:

2024/1/2_第7张图片 

2.4 输入一个数,计算各个数字之和 

#include 

int main(int argc, const char *argv[])
{				
		int i,num;//定义循环变量i,num用来存储输入的数
		int sum=0;//定义一个sum用来存储num各个位的和
		printf("please enter a number:");//提示输入num
		scanf("%d",&num);	//输入num的值
		while(num!=0)//
		{
			sum+=num%10;//循环取出num各个位的数并求和
			num/=10;
		}
		printf("sum=%d\n",sum);//打印出sum的值
		return 0;
}

 效果图:

2024/1/2_第8张图片

 

作业3:

思维导图:

2024/1/2_第9张图片

你可能感兴趣的:(算法,数据结构)