你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

c语言能力记录1

2021-11-21 21:09:52

公约公倍

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

int gcd (int m,int n)
{
	int r,temp;
	if(m<n){
		temp=m;
		m=n;
		n=temp;
	}
	r=m%n;
	while(r!=0){
		m=n;
		n=r;
		r=m%n;
	}
	return n;
}

int lcm(int m,int n)
{
	int a=1;
	while(a%m!=0||a%n!=0){		
		a++;
	}
	return a;
}
int main()

{
	int m,n;
	scanf("%d %d",&m,&n);
	printf("%d %d",gcd(m,n),lcm(m,n));
	return 0;
}

使用函数求素数和

#include<stdio.h>
#include<math.h> 
int prime(int p)
{
	if(p==1) return 0;
	if(p==2) return 1;
	else{
		for(int j=2;j<=sqrt(p)+1;j++){
			if(p%j==0) return 0;
		}
		return 1;
	}
}

int prime_sum(int m,int n)
{
	int sum=0;
	for(int k=m;k<=n;k++){
		if(prime(k)==1){
			sum=sum+k;
		}
	}
	return sum;
}

int main()
{
	int m,n;
	scanf("%d %d",&m,&n);
	printf("Sum of ( ");
	for(int i=m;i<=n;i++){
		if(prime(i)==1){
			printf("%d ",i);
		}
	}
	printf(") = %d",prime_sum(m,n));
	
	return 0;
}

 使用函数求余弦函数的近似值

#include<stdio.h>
#include<math.h>
double funcos(double eps,double x)
{
	int flag=1,mi=0,jc=1;
	double cos=0,item;
	do{
		for(int i=1;i<=mi;i++){
		jc=jc*i;
		}
		item=pow(x,mi)/jc;
		cos=cos+flag*item;
		flag=flag*(-1);
		mi+=2;
		jc=1;
	}while(fabs(item)>=eps);
	
	return cos;
}
int main()
{
	double x,eps;
	scanf("%lf %lf",&eps,&x);
	printf("cos(%.2lf) = %.6lf",x,funcos(eps,x));
	return 0;
}

使用函数统计指定数字的个数

#include<stdio.h>
#include<math.h>
int countdigit (int number,int digit)
{
	int a=0,count=0;
	do{
		a=fabs(number%10);
		number=number/10;
		if(a==digit){
			count++;
		}
	}while(number!=0);
	return count;
}

int main()

{
	int number,digit;
	scanf("%d %d",&number,&digit);
	printf("Number of digit %d in %d: %d",digit,number,countdigit(number,digit));
	return 0;
}

 空心的数字金字塔

#include<stdio.h>
#include<math.h>
int hollow(int n)
{
	int count=1;
	for(int i=1;i<=n;i++){
		
		for(int j=1;j<=n-count;j++){
			printf(" ");	
		}
		
		if(i==1){
			printf("1");
		}
		
		else if(i==n){
			for(int l=1;l<=2*n-1;l++){
				printf("%d",n);
			}	
		}
		
		else{
			printf("%d",i);
			
			for(int k=1;k<=(2*i-3);k++){
				printf(" ");
			}
			
			printf("%d",i);
		}
		
		printf("\n");
		count++;
	}
}

int main()

{
	int n;
	scanf("%d",&n);
	hollow(n);
	return 0;
}

判断给定的两个数是否是亲和数

#include<stdio.h>
#include<math.h>
int qhs(int a, int b)
{
	int suma=0,sumb=0;
	for(int i=1;i<=a/2;i++){
		if(a%i==0){
			suma=suma+i;
		}
	}
	for(int j=1;j<=b/2;j++){
		if(b%j==0){
			sumb=sumb+j;
		}
	} 
	if(a==sumb&&b==suma&&a!=b){
		return 1;
	}
	else return 0;	
}

int main()
{
	int t,a,b;
	scanf("%d",&t);
	for(int k=1;k<=t;k++){
		scanf("%d %d",&a,&b);
		if(qhs(a,b)==1){
			printf("YES\n");
		}
		else if(qhs(a,b)==0){
			printf("NO\n");
		}
	}
	
	return 0;
 }