XDOJ例题及答案第七更 计算整数各位数字之和简单程序奖金计算角谷定理阶乘运算阶乘之和阶梯电价计费阶梯电价计算 金字塔打印矩阵矩阵对角线求和矩阵求和累加和校验利率计算 利润计算螺旋填数马鞍点

目录

计算整数各位数字之和

简单程序

奖金计算

角谷定理

阶乘运算

阶乘之和

阶梯电价计费

阶梯电价计算

金字塔打印

矩阵

矩阵对角线求和

矩阵求和

累加和校验

利率计算

利润计算

螺旋填数

马鞍点


计算整数各位数字之和

#include<stdio.h>
int main()
{
	int a,b,c;
	scanf("%d",&a);
	b=0;
	do{
		c=a;
		a=a/10;
		b=c-a*10+b;
		
	}while(a>0);
	printf("%d",b);
	return 0;
}

简单程序

#include<stdio.h>
int main()
{
	printf("C programming language is useful!\nI like it very much.");	
}

奖金计算

#include<stdio.h>
int main()
{
	int lr,jj;
	scanf("%d",&lr);
	if(lr<=100000){
		jj=0.1*lr;
	}else{
		if(lr<=200000){
			jj=10000+(lr-100000)*0.075;
		}else{
			if(lr<=400000){
				jj=17500+(lr-200000)*0.05;
			}else{
				if(lr<=600000){
					jj=27500+(lr-400000)*0.03;
				}else{
					if(lr<=1000000){
						jj=33500+(lr-600000)*0.015;
					}else{
						jj=39500+(lr-1000000)*0.01;
					}
				}
			}
		}
	}
	printf("%d",jj);
}

角谷定理

#include<stdio.h>
int main()
{
	int a;
	int n=0;
	scanf("%d",&a);
	do{
		if(a%2==0){
			a=a/2;
			n=n+1;
		}else{
			a=a*3+1;
			n=n+1;
		}
	}while(a>1);
	printf("%d",n);
}

阶乘运算

#include<stdio.h>
int main()
{
	int m,n,i;
	float a=1.0;
	scanf("%d%d",&m,&n);
	for(i=m;i>0;i--){
		a=i*a;
	}
	for(i=n;i>0;i--){
		a=a/i;
	}
	for(i=m-n;i>0;i--){
		a=a/i;
	}
	printf("%.2f",a);
}

阶乘之和

#include<stdio.h>
int main()
{
	int n,a;
	long int N=1,sum=0;
	scanf("%d",&n);
	for(a=1;a<=n;a++){
		N=a*N;
		sum=sum+N;	
	}
	printf("%d %d %d",n,N,sum);
}

阶梯电价计费

#include<stdio.h>
int main()
{
	float a,b;
	scanf("%f",&a);
	if(a<=110){
		b=a*0.5;
		printf("%.2f",b);
	}else{
		if(a<=210){
			b=55+0.55*(a-110);
			printf("%.2f",b);
		}else{
			printf("%.2f",110+0.7*(a-210));
		}
	}
 } 

阶梯电价计算

#include<stdio.h>
int main()
{
	float a;
	scanf("%f",&a);
	if(a<=110){
		printf("%.2f A 0.00",a*0.5);
	}else{
		if(a<=210){
			printf("%.2f B %.2f",55+(a-110)*0.55,a-110);
		}else{
			printf("%.2f C %.2f",110+(a-210)*0.7,a-210);
		}
	}
}

金字塔打印

#include<stdio.h>
void tow(char Z,int N){
	int i,j=1;
	for(i=1;i<N+1;i++){
	while(j<2*N){
		if(j>=N-i+1&&j<N+i-1){
			printf("%c ",Z);
			j+=2;
		}else{
			if(j==N+i-1){
				printf("%c",Z);
			}else{
				printf(" ");
			}
			j++; 
		}
	}
	j=1;
	printf("\n");
	}
}
int main(){
	int N;
	char Z;
	scanf("%c%d",&Z,&N);
	tow(Z,N);
}

矩阵

#include<stdio.h>
int main()
{
	int a[20][20],i,j,m,k,b[42]={0,};
	scanf("%d",&m);
	for(i=0;i<m;i++){
		for(j=0;j<m;j++){
			scanf("%d",&a[i][j]);
			b[i]=b[i]+a[i][j];
		}
	}
	for(j=0;j<m;j++){
		for(i=0;i<m;i++){
			b[j+m]=b[j+m]+a[i][j];
		}
	}
	for(i=0;i<m;i++){
		b[2*m]=b[2*m]+a[i][i];
	}
	for(i=0;i<m;i++){
		b[2*m+1]=b[2*m+1]+a[i][m-i-1];
	}
	for(j=2*m+2;j>0;j--){
	for(i=0;i<j-1;i++){
		if(b[i]<b[i+1]){
			k=b[i];
			b[i]=b[i+1];
			b[i+1]=k;
		}
	}
	}
	for(i=0;i<2*m+2;i++){
		printf("%d ",b[i]);
	}
	printf("\n");
	return 0;
}

矩阵对角线求和

#include<stdio.h>
int main(){
	int a[3][3],i,j,sum=0;
	for(i=0;i<3;i++){
		for(j=0;j<3;j++){
			scanf("%d",&a[i][j]);
			if(i==j){
				sum=sum+a[i][j];
			}
		}
	}
	printf("%d",sum);
}

矩阵求和

#include<stdio.h>
int main(){
	int a[2][3],b[3][2],c[2][2]={0},i,j,k;
	for(i=0;i<2;i++){
		for(j=0;j<3;j++){
			scanf("%d",&a[i][j]);
		}
	}
	for(i=0;i<3;i++){
		for(j=0;j<2;j++){
			scanf("%d",&b[i][j]);
		}
	}
	for(i=0;i<2;i++){
		for(j=0;j<2;j++){
			for(k=0;k<3;k++){
				c[i][j]=a[i][k]*b[k][j]+c[i][j];
			}
			printf("%d ",c[i][j]);
		}
		printf("\n");
	}
}

累加和校验

#include<stdio.h>
#include<string.h>
int main()
{
	int i,n=0;
	char s[100]={'\0'};
	gets(s);
	for(i=0;i<strlen(s);i++){
		n=n+s[i];
	}
	printf("%d",n&0xFF);
	
}

利率计算

#include<stdio.h>
#include<math.h>
int main()
{
	float r,n,p;
	scanf("%f%f",&r,&n);
	p=pow(1+r,n);
	printf("%.2f",p);
	
}

利润计算

#include<stdio.h>
int main() 
{
	int lr;
	float jj;
	scanf("%d",&lr);
	if(lr<=100000){
		jj=0.1*lr;
	}else{
		if(lr<=200000){
			jj=10000+(lr-100000)*0.075;
		}else{
			if(lr<=400000){
				jj=17500+(lr-200000)*0.05;
			}else{
				if(lr<=600000){
					jj=27500+(lr-400000)*0.03;
				}else{
					if(lr<=1000000){
						jj=33500+(lr-600000)*0.015;
					}else{
						jj=39500+(lr-1000000)*0.01;
					}
				}
			}
		}
	}
	printf("%.2f",jj);
}

螺旋填数

#include<stdio.h>
int main(){
	int m,n,i=0,j=0,b=1,c=0,d=0,e=0,f=0,g=1,a[100][100];
	scanf("%d%d",&m,&n);
	while(g<=m*n){
		if(b==1){
			for(;j<n-e;j++){
				a[i][j]=g;
				//printf("(%d,%d) %d\n",i,j,g);
				g++;
				if(g>m*n){
					break;
				}
			}
			i++;
			b++;
			c++;
			j--;
			}
		if(b==2){
			for(;i<m-d;i++){
				a[i][j]=g;
				//printf("(%d,%d) %d\n",i,j,g);
				g++;
				if(g>m*n){
					break;
				}
			}
			b++;
			e++;
			j--;
			i--;
		}
		if(b==3){
			for(;j>=f;j--){
				a[i][j]=g;
				//printf("(%d,%d) %d\n",i,j,g);
				g++;
				if(g>m*n){
					break;
				}
			}
			b++;
			d++;
			i--;
			j++;
		}
		if(b==4){
			for(;i>=c;i--){
				a[i][j]=g;
				//printf("(%d,%d) %d\n",i,j,g);
				g++;
				if(g>m*n){
					break;
				}
			}
			b=1;
			f++;
			j++;
			i++;
		}
	
	}
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			printf("%d ",a[i][j]);
		}
		printf("\n");
	}
} 

马鞍点

#include<stdio.h>
int max(int a,int b){
	if(a<b){
		return b;
	}else{
		return a;
	}
}
int min(int a,int b){
	if(a<b){
		return a;
	}else{
		return b;
	}
}
int main(){
	int i,j,m,n,mi,ma,ret=0,a[100][100],b[100],c[100];
	scanf("%d%d",&m,&n);
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			scanf("%d",&a[i][j]);
		}
	}
	mi=a[0][0];
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			mi=min(mi,a[i][j]);
		}
		b[i]=mi;
		mi=a[i+1][0];
	}
	ma=a[0][0];
	for(j=0;j<n;j++){
		for(i=0;i<m;i++){
			ma=max(ma,a[i][j]);
		}
		c[j]=ma;
		ma=a[0][j+1];
	}
	for(i=0;i<m;i++){
		for(j=0;j<n;j++){
			if(b[i]==c[j]){
				ret=1;
				printf("%d %d %d",i,j,b[i]);
			}
		}
	}
	if(ret==0){
		printf("no");
	}
	
} 

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值