学习总结1.0

2023/12/12

(1)题目描述:

写一个函数,判断100~200之间的所有素数。

代码如下:

#include
int main()
{
	int i=0;
	for(i=100;i<=200;i++)
	{
	int j=0;
	int flag=1;
	for(j=2;j

思路:

将100至200的数遍历从100除至200,如果期间除余为0,则j也是它的因数,说明它不是素数,反之则是素数。

优化:

#include
#include
int main()
{
	int i=0;
	for(i=101;i<=200;i+2)//素数只可能是奇数
	{
	int j=0;
	int flag=1;
	for(j=2;j

从这一题中所学的知识:

对于对素数的查找,可以确定素数一定是奇数,且因子只需要遍历至平方根位置即可,从而达到优化的效果。

12

12/13

题目描述:

第一行输入一个数值n,表示有n个数值,第二行输入n个数值各是多少

要求第一行输出去除重复数值后所剩的数值个数,第二行输出除去重复数值之后的数值,且从小到大排序。

样例输入:

10

20 40 32 67 40 20 89 300 400 15

样例输出:

8

15 20 32 40 67 89 300 400

代码如下:

#include
int main()
{
	int N,i,j; 
	scanf("%d",&N);
	int arr[N];
	for(i=0;iarr[j+1])
			  {
			  	int t=arr[j];
			  	arr[j]=arr[j+1];
			  	arr[j+1]=t;
			   } 
		 }
	 }
	 int k=N;
	 for(i=0;i

思路:

先是使用冒泡排序对数组进行排序,输出时使用continue对重复的数据进行跳过,达到去重的目的。

12/14

​​​​​题目描述:

有n盏灯,编号为1-n。第一个人把所有的灯打开,第2个人按下所有编号为2的倍数的开关(这些灯被灭掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,打开的灯将被关闭),以此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。

样例输入:

7  3

样例输出:

1  5  6  7

代码如下:

#include
int main()
{
	int a[1000]={0};
	int i,j,k,n;
	scanf("%d %d",&n,&k);
	a[1]=0;
	for(i=2;i<=n;i++)
	{
		for(j=2;j<=k;j++)
		{
			if(j>i)
			break;
			if(i%j==0)
			a[i]=(a[i]==1?0:1);
		}
	}
	for(i=1;i<=n;i++)
	{
		if(a[i]==0)
		printf("%d ",i);
	}
	return 0;
}

思路:

首先将编号用数组来表示,定义数组0为开,1为关;从题目意思可得,第一个灯永远都是开着的,即可直接定义a[1]=0;之后从第2个灯开始遍历,运用三目运算符进行对开关灯的翻转,最后输出结果。

从这一题中所学的知识:

三目运算符:if条件语句的简化版

基本形式:布尔表达式?表达式1:表达式2

原理:如果布尔表达式为真;则返回表达式1中的值;如果为假,则返回表达式2中的值

12/14

题目描述:

求C(N,M),即求M个数中选N个数的组合方案数

第一行一个正整数T(T<=10),表示有T组测试数据

样例输入

2

3  5

2  4

样例输出:

10

6

代码如下:

#include
 int fact(int n)
 {
 	int i;
 	int sum=1;
 	for(i=1;i<=n;i++)
 	{
 		sum*=i;
	 }
	 return sum;
  } 
  int main()
  {
  	int j,N,M,T;
	  scanf("%d",&T);
	  int result;
	  for(j=0;j

思路:

思路很简单,主要需要注意的是一个数学知识:C(N,M)=M!/(N!*(M-N))!)

12/15

今日所学知识:

高精度加法的运算:用于处理很大的数相加,如几百位数的相加

在C/C++中,经常会碰到限定数据范围的情况,但是C++中标准规定int占一个机器字长。在32位系统中int占32位,即4个字节,所以int的范围是[-2^31,2^31-1],为10^9数量级;long long的范围则是[-2^63,2^63-1],数量级为10^18,超过该数量级则需要使用高精度算法。

核心:竖式计算

具体思路

学习总结1.0_第1张图片

你可能感兴趣的:(学习)