C语言程序设计五

#include<bits/stdc++.h>

//求n个数的最小公倍数 
#define  lcm(a,b) a / gcd(a,b)*b
long gcd(long m,long n)
{
	while(n)
	{
		long tmp = m % n;
		m = n;
		n = tmp;
	}
	
	return m;
}
int main1()
{
	int n;
	int lcmval,val;
	while(scanf("%d",&n)!=EOF)
	{
		scanf("%d",&lcmval);
		while(--n)
		{
			scanf("%d",&val);
			lcmval = lcm(lcmval,val);
		}
		printf("%d\n",lcmval);
	}
  
    return 0;
}


 //回文串 
int main2()
{
	int n;
	char a[1001];
	scanf("%d",&n);
	int start;
	int flag;
	int end;
	while(n--)
	{
		scanf("%s",a);
		start = 0;
		end = strlen(a) - 1;
		flag = 1;
		while(start < end)
		{
			if(a[end] != a[start])
			{
				flag = 0;
				break;
			}
			start++;
			end--;
		}
		if(flag)
			printf("yes\n");
		else
			printf("no\n");
	}
	return 0;	
}

//汉子统计
//汉字机内码使用二个字节,汉字的每个字节都是<0的,即其每个字节最高位一位为1。
//C/C++语言补码第一位是符号位,1表示为负数。
int main3()
{
	int n;
	scanf("%d",&n);
	getchar();
	while(n--)
	{
		int res = 0 ;
		char ch;
		while(1)
		{
			if((ch = getchar()) == '\n')
				break; 
			if(ch < 0 )
				res++;
		}
		printf("%d\n",res/2);
	}
	
	
	return 0;
} 

//输入一个十进制数N,将它转换成R进制数输出。

void reverse(char s[],int len)
{
	int i,j;
	int tmp;
	for(i = (s[0] == '-' ? 1 : 0 ),j = len-1;i<j;i++,j--)
	{
		tmp = s[i];
		s[i]  = s[j];
		s[j] = tmp;
	}
}

void convert(int n,int r,char s[])
{
	int i = 0;
	if(n < 0)
	{
		s[i++] = '-';
		n = -n;
	}
	while(n)
	{
		s[i] = n % r;
		if(s[i] >= 10)
		{
			s[i] +='A' - 10;
		}
		else
			s[i] +='0';
		n /= r;
		i++; 
	}
	s[i] = '\0';
	reverse(s,i);
}
int main4()
{
	int n,r;
	int sum = 0;
	char ans[33];
	while(scanf("%d %d",&n,&r)!=EOF)
	{
		convert(n,r,ans);
		printf("%s\n",ans);
	}
	return 0;
}



//杨辉三角 
int pascal[31];

//void pascalgo(int n)
//{
//	int i,j;
//	for(i = 0;i<n;i++)
//	{
//		for(j = i ;j>=0;j--)
//		{
//			if(j==i || j==0)
//				pascal[j] = 1;
//			else 
//				pascal[j] +=pascal[j-1];
//			if(j!=i)
//				printf(" ");
//			printf("%d",pascal[j]);
//		}
//		printf("\n");
//	}
//}

void pascalgo(int n)
{
	int i,j;
	for(i = 0;i<n;i++)
	{
		int l = n - 1 - i;
		while(l)
		{
			printf(" ");
			l--;	
		}
		for(j = i ;j>=0;j--)
		{
			if(j==i || j==0)
				pascal[j] = 1;
			else 
				pascal[j] +=pascal[j-1];
			if(j!=i)
				printf(" ");
			printf("%d",pascal[j]);
		}
		printf("\n");
	}
}

int main()
{
	int n;
	while(scanf("%d", &n) != EOF) {
    	pascalgo(n);
    	printf("\n");
    }

	return 0;
}

posted @ 2020-09-15 21:33  Akmf's_blog  阅读(90)  评论(0编辑  收藏  举报