15三角形(进阶题)----东华大学2020计算机考研复试oj上机题

43 篇文章 4 订阅
42 篇文章 0 订阅
根据输入的数字和行数,程序需构建一个由1到9循环填充的数字三角形。输入包括起始数字s和三角形的行数n,输出为按规则排列的数字三角形。示例输入为1 5和5 6,对应的输出分别是一个1到5的三角形和一个以5开始的6行三角形。
摘要由CSDN通过智能技术生成

问题描述 :
“明明,你会用1到9这九个数字组成一个三角形吗?”明明的爸爸问明明。明明被问的很莫名其妙,不明白他爸爸在说什么,于是就问道:“用1到9组成三角形???”“是的,我的要求很简单,给你2个数,一个数作为这个三角形的开始,另一个数决定这个三角形的大小。例如我给你5和6这两个数,你就要组成如下的一个三角形:
5
6 7
8 9 1
2 3 4 5
6 7 8 9 1
2 3 4 5 6 7
明白了吗?”
明明观察了许久,终于看出了门道来,说道:“就是说给我2个数,例如5和6,那我就要从5这个数开始构建一个三角形。第一行为一个数字,第二行为2个数字,以此类推,直到第六行的六个数字,且三角形中的数字都是1到9在循环重复,是这样吗?”“明明真聪明,就是这样。”明明爸爸高兴的说道。于是明明的爸爸给了明明很多组这样的数字,明明也构建出了很多个不同的三角形。
你能像明明那样,写一个程序来构建上面的三角形吗?
输入说明 :
你写的程序要求从标准输入设备中读入测试数据作为你所写程序的输入数据。标准输入设备中有多组测试数据,每组测试数据仅有一行,每行有两个整数s和n(1≤s≤9,1≤n≤80),其中s表示位于三角形的最顶端的数字,n表示三角形由几行数字组成。每组测试数据与其后一组测试数据之间没有任何空行,第一组测试数据前面以及最后一组测试数据后面也都没有任何空行。
输出说明 :
对于每一组测试数据,你写的程序要求计算出一组相应的运算结果,并将每组运算结果作为你所写程序的输出数据依次写入到标准输出设备中。每组运算结果为构建出来的三角形,三角形中的同一行的数字两两之间用一个空格隔开。每组运算结果与其后一组运算结果之间有一个空行,最后一组运算结果后面没有空行。
注:通常,显示屏为标准输出设备。
输入范例 :
1 5
5 6
输出范例 :
1
2 3
4 5 6
7 8 9 1
2 3 4 5 6

5
6 7
8 9 1
2 3 4 5
6 7 8 9 1
2 3 4 5 6 7

#include <stdio.h>
int main() {
	int s,n,i,j,num[85][85]={0},d,k;
	while(scanf("%d%d",&s,&n) != EOF) {
		num[0][0]=s;
		printf("%d\n",s);
		d = s; //保存当前值
		k=1;
		for(i=1;i<n;i++) {
			for(j=0;j<=i;j++) {
				num[i][j] =  d + k;
				if(num[i][j] == 9) {
					d=0;
					k=0;
				}
				//每行最后面没有空格
				if(i==j)
					printf("%d",num[i][j]);
				else
					printf("%d ",num[i][j]);
				k++;
			}
			printf("\n");
		}
		printf("\n");
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值