PTA寒假编程第一题

7-1 打印沙漏 (20 分)

本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印



*



所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符号数相等。

给定任意N个符号,不一定能正好组成一个沙漏。要求打印出的沙漏能用掉尽可能多的符号。

输入格式:

输入在一行给出1个正整数N(≤1000)和一个符号,中间以空格分隔。

输出格式:

首先打印出由给定符号组成的最大的沙漏形状,最后在一行中输出剩下没用掉的符号数。

输入样例:

19 *

输出样例:

*****

****

2

实验代码:

include<stdio.h>

int main(void)

{

int n,i=1,sum=1;//i表示行数,sum表示字符数

char c;

scanf("%d %c",&n,&c);

while(sum<=n)

{

sum+=2(2(i+1)-1);

i++;

}

i=i-1;

//打印上半部分

int j,k;

for(j=0;j<i;j++)

{

for(k=0;k<j;k++)

printf(" ");

for(k=0;k<2(i-j)-1;k++)

{

printf("%c",c);

}

printf("\n");

}

//打印下半部分

for(j=2;j<=i;j++)

{

for(k=0;k<i-j;k++)

printf(" ");

for(k=0;k<2j-1;k++)

{

printf("%c",c);

}

printf("\n");

}

printf("%d",n-(sum-(2(2(i+1)-1))));

return 0;

}

编程截图:

总结:

1.这个题首要的先确定要打印的行数。

2.利用递减公式打印上半部分,然后用递加公式打印下半部分。

3.再进行单步调试。

原文地址:https://www.cnblogs.com/husiyu/p/10361181.html

时间: 2024-08-02 01:42:07

PTA寒假编程第一题的相关文章

PTA寒假编程第二题

币值转换 输入一个整数(位数不超过9位)代表一个人民币值(单位为元),请转换成财务要求的大写中文格式.如23108元,转换后变成"贰万叁仟壹百零捌"元.为了简化输出,用小写英文字母a-j顺序代表大写数字0-9,用S.B.Q.W.Y分别代表拾.百.仟.万.亿.于是23108元应被转换输出为"cWdQbBai"元. 输入格式: 输入在一行中给出一个不超过9位的非负整数. 输出格式: 在一行中输出转换后的结果.注意"零"的用法必须符合中文习惯. 输入样

PTA寒假编程第三题

抓老鼠啊~亏了还是赚了? 某地老鼠成灾,现悬赏抓老鼠,每抓到一只奖励10元,于是开始跟老鼠斗智斗勇:每天在墙角可选择以下三个操作:放置一个带有一块奶酪的捕鼠夹(T),或者放置一块奶酪(C),或者什么也不放(X).捕鼠夹可重复利用,不计成本,奶酪每块3元. 聪明的老鼠呢?它们每天可能会派出一只老鼠到墙角,看看墙角有啥: 若什么也没有(X),老鼠们就不高兴了(Unhappy),会有长达一天(也就是第二天)的不高兴期.在不高兴期间,不派出老鼠.不高兴期结束之后,派出老鼠. 若有捕鼠夹(T),这只老鼠被

A Simple Math Problem(矩阵快速幂)(寒假闭关第一题,有点曲折啊)

A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 155 Accepted Submission(s): 110   Problem Description Lele now is thinking about a simple function f(x). If x < 10 f(x) = x.If

头条校招 编程第一题

头条的2017校招开始了!为了这次校招,略去! 简单的思路就是排序,然后数就行了.刚开始写的很简单,没考虑这样的情况比如(10,30,50),10和30之间可以插入20满足条件,然后这个例子的结果应该是3.我当时没有做出来!后来跟师姐简单讨论下,说是简单排序后,每3个3个检查一下不就可以了么,我恍然大悟,原来可以这样,我还以为很复杂呢!结束后我写了一下,不知道结果对不对. 1 #include<bits/stdc++.h> 2 #define pb push_back 3 #define FO

第五届在线编程大赛月赛第一题:完全平方数的个数

第五届在线编程大赛月赛第一题:完全平方数的个数 题目详情: 给定整数区间[A,B]问其中有多少个完全平方数. 输入格式: 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000. 输出格式: 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数. 答题说明: 输入样例 1 1 1 2 3 10 3 3 输出样例: 1 1 2 0 java代码: import java.util.Scanner; public class One { public s

CSDN挑战编程——《金色十月线上编程比赛第一题:小女孩数数》

金色十月线上编程比赛第一题:小女孩数数 题目详情: [金色十月线上编程比赛规则] 一个小女孩正在用左手手指数数,从1数到n.她从拇指算作1开始数起,然后,食指为2,中指为3,无名指为4,小指为5.接下来调转方向,无名指算作6,中指为7,食指为8,大拇指为9,如此反复.问最后会停在那个手指上?用编号1.2.3.4.5依次表示大拇指.食指.中指.无名指.小指. 输入格式: 输入多组数据.每组数据占一行,只包含一个整数n(1<=n<=1000000000). 输出格式: 每组数据占一行,只包含一个介

编程之美第一题 超级赛亚ACMer

题意太麻烦 , 就不说了, 编美第一题,  也算是签到题,和队友一起果断混了5个水 题, 也不知道会不会有小熊公仔,废话不多说,细说比赛我出的三个水题. 题解: 这个人每次战斗力会跨越,  YY了一下,每次跨越的落脚点为该跨越距离中最后一个点, 然后就A了 ,  YY 大法好. 代码: #include<stdio.h> #include<iostream> #include<algorithm> using namespace std; int n, m, k; __

Project Euler 第一题效率分析

Project Euler: 欧拉计划是一系列挑战数学或者计算机编程问题,解决这些问题需要的不仅仅是数学功底. 启动这一项目的目的在于,为乐于探索的人提供一个钻研其他领域并且学习新知识的平台,将这一平台打造一个有趣和休闲 的环境. 项目主页:https://projecteuler.net 第一题 Multiples of 3 and 5 If we list all the natural numbers below 10 that are multiples of 3 or 5, we ge

2016/1/12 第一题 输出 i 出现次数 第二题 用for循环和if条件句去除字符串中空格 第三题不用endwith 实现尾端字符查询

1 import java.util.Scanner; 2 3 4 public class Number { 5 6 private static Object i; 7 8 /* 9 *第一题 mingrikejijavabu中字符“i” 出现了几次,并将结果输出*/ 10 public static void main(String[] args) { 11 12 String r ="imingrikejijavabi"; 13 14 15 //第一种 截取 16 int a=