每日学习 1165--1170

1165 杨辉三角形

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 15451 | 通过数 : 7798

题目描述

 

杨辉三角的历史悠久,是我国古代数学家杨辉揭示二项展开式各项的系数的数字三角形。

从键盘输入一个整数n,输出如下所示的n行的杨辉三角形。下图是n为5时的杨辉三角形。

输入要求

输入一个整数n。(1<=n<=15)。

输出要求

输出n行的杨辉三角形。

输入样例

5

输出样例

1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 

提示

 

每一个数据的后面都有空格。

杨辉三角构造规则:每行首尾是1,其他每个数字等于上一行上方及左上方的两个数字之和。

来源

NBU OJ

代码:

#include<stdio.h>         //C
int main(){
	int n,i,j,a[100][100];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		for(j=0;j<=i;j++){
			if(j==0||j==i) a[i][j]=1;
			else a[i][j]=a[i-1][j-1]+a[i-1][j];
			printf("%d ",a[i][j]); 
		}
		printf("\n");
	}
	return 0;
}


1166 稀疏字母金字塔(1)

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 14275 | 通过数 : 6462

题目描述

 

从键盘输入一个整数n,输出n行的字母金字塔。如下图所示的是一个n为6的字母金字塔。

输入要求

输入一个整数n。

输出要求

输出n行的字母金字塔。

输入样例

6

输出样例

     A
    B B
   C C C
  D D D D
 E E E E E
F F F F F F

提示

每个字符后面都有空格

来源

NBU OJ

代码:

#include<stdio.h>             //C
int main(){
	int n,i,j,k;
	char c=65;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		for(j=0;j<n-i;j++)
			printf(" ");
		for(k=0;k<i;k++)
			printf("%c ",c); 
		c++;
		printf("\n");
	}
	return 0;
}


1167 susan的货币兑换

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 12744 | 通过数 : 5294

题目描述

Susan到中国观光旅游,她不太熟悉人民币,因此分别将1角,2角,5角,1元,2元,5元,10元,20元,50元,100元的人民币依次排序号(从1开始排序号),她每天将自己手中不同面值人民币的张数输入iPAD,以计算手头的人民币数额。请你帮她编写一个程序,可以根据她手中的不同面值人民币的张数,计算出对应的人民币数额。

输入要求

输入人民币序号及张数。每种面值占据一行。如5 20表示序号为5的人民币有20张。当输入序号或张数为负数时结束。

输出要求

输出对应的人民币数值。保留2位小数。

输入样例

5 20
8 40
10 10
-1 0

输出样例

1840.00

提示

 

来源

NBU OJ

代码:

#include<stdio.h>           //C
int main(){
	int a,b;
	double rmb[11]={0,0.1,0.2,0.5,1,2,5,10,20,50,100},s=0;
	while(~scanf("%d%d",&a,&b)){
		if(a<0||b<0) break;
		s+=rmb[a]*b;
	}
	printf("%.2f\n",s);
	return 0;
}


1168 查找学生信息

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 9424 | 通过数 : 4122

题目描述

先录入n个学生信息,包括学生的学号和期末考试总成绩。再给定某学生学号,查找是否有该学生的相应信息。

输入要求

第一行输入一个整数n(n<100),表示有n个学生; 后面n行输入这n个学生的信息,内容分别为学号和分数;接下来一行输入所要查询的学生学号。

输出要求

输出该学号学生的成绩,如无匹配学号,则输出“No found!”。(输出不包含引号)

输入样例

4
084110 100
084111 98
084112 97
084113 99
084111

输出样例

98

提示

 

来源

NBU OJ

代码:

#include<stdio.h>           //C
int main(){
	int n,a[100][2],key,i,j,set=1;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		for(j=0;j<2;j++)
			scanf("%d",&a[i][j]);
	scanf("%d",&key);
	for(i=0;i<n;i++){
		if(a[i][0]==key) printf("%d\n",a[i][1]),set=0;
	}
	if(set) printf("No found!\n");
	return 0;
}


1169 二维数组行列互换

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 13371 | 通过数 : 7173

题目描述

将一个二维数组的行和列元素互换,存放到另一个二维数组中。

输入要求

 

第一行输入两个整数m和n分别表示二维数组的行数和列数(均不超过20)。

下一行输入该二维数组的各个元素值。

输出要求

输出行列变换后的数组。

输入样例

3 4
1 2 5 3
5 3 4 2
0 6 9 1

输出样例

1 5 0 
2 3 6 
5 4 9 
3 2 1 

提示

每个数据的后面都有空格。数组长度不超过20。

来源

NBU OJ

代码:

#include<stdio.h>            //C
int main(){
	int m,n,a[20][20],i,j;
	scanf("%d%d",&m,&n);
	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
			scanf("%d",&a[i][j]);
	for(i=0;i<n;i++){
		for(j=0;j<m;j++){
			printf("%d ",a[j][i]);
		}	
		printf("\n");
	}	
	return 0; 
}


1170 N个数据排序

时间限制 : 2000/1000 MS(Java/Others) | 内存限制 :65536/32768 KB(Java/Others)

提交数 : 15131 | 通过数 : 7350

题目描述

给定n个整数,设计函数按从小到大的顺序排序。

输入要求

第一行输入一个正整数n ,第二行输入这n个整数。

输出要求

输出n个整数排序后的结果(从小到大排序)。

输入样例

8
8 2 125 31 0 10 -1 2

输出样例

-1 0 2 2 8 10 31 125

模板

#include <stdio.h>
@-@   //设计排序函数
int main()
{
	int x[1000];
	int i,n,j,m,t;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&x[i]);
	mysort(x,n);   //调用排序函数
	for(i=0;i<n-1;i++)
		printf("%d ",x[i]);
	printf("%d\n",x[n-1]);
    return 0;
}

提示

 

最后一个数据的后面没有空格,直接换行。数组长度最大可定义到1000。

来源

NBU OJ

代码:

#include<stdio.h>             //C
void mysort(int x[1000],int n){//设计排序函数
	int i,j,t;
	for(i=0;i<n-1;i++){
		for(j=0;j<n-1-i;j++){
			if(x[j]>x[j+1]) t=x[j],x[j]=x[j+1],x[j+1]=t;
		}
	}
}
int main(){
	int x[1000];
	int i,n,j,m,t;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&x[i]);
	mysort(x,n);//调用排序函数
	for(i=0;i<n-1;i++)
		printf("%d ",x[i]);
	printf("%d\n",x[n-1]);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值