11.8~11.14每周题目

题目 1054: [二级C语言]计算素数和

#include <stdio.h>
#include <math.h>

int isprime(int x)//判断素数,返回1表示x为素数
{
	if(x==1)return 1;
	int i,emp=sqrt(x);
	for(i=2;i<=emp;++i)
		if(x%i==0)
			return 0;
	return 1;
}

int main(void)
{
	int m,n;
	long long sum=0;
	scanf("%d %d",&m,&n);
	for(;m<=n;++m)
		if(isprime(m))
			sum+=m;
	printf("%lld",sum);
	return 0;
}

洛谷P1177 【模板】快速排序

#include <stdio.h>
#define maxn 10000001

int num[maxn];
void swap(int *a,int *b)
{
	int c;
	c=*a,*a=*b,*b=c;
	return ;
}
void mergesort(int l, int r)
{
	int i=l,j=r,mid=num[l+(r-l)/2];
	do
	{
		while(num[i]<mid)++i;
		while(num[j]>mid)--j;
		if(i<=j)
		{
			swap(num+i,num+j);
			++i,--j;
		}
	}while(i<=j);
	if(l<j)mergesort(l,j);
	if(i<r)mergesort(i,r);
}

int main(void)
{
	int n,i;
	scanf("%d",&n);
	for(i=1;i<=n;++i)
		scanf("%d",&num[i]);
	mergesort(1,n);
	for(i=1;i<=n;++i)
		printf("%d ",num[i]);
	return 0;
}

题目 1046: [编程入门]自定义函数之数字后移

#include <stdio.h>

int num[101];
int main(void)
{
	int n,i,m;
	scanf("%d",&n);
	for(i=1;i<=n;++i)
		scanf("%d",&num[i]);
	scanf("%d",&m);

	for(i=n;i>0;--i)//倒着来防止覆盖
		num[m+i]=num[i];
	for(i=1;i<=m;++i)//把后移后超出n的转移到前面
		num[i]=num[n+i];
	for(i=1;i<=n;++i)
		printf("%d ",num[i]);
	return 0;
}
posted @ 2020-11-09 22:17  快乐永恒  阅读(159)  评论(6编辑  收藏  举报