题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的反斜线形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成反斜线的“*”的数量。
输出描述:
针对每行输入,输出用“*”组成的反斜线。
示例:
示例1
输入:4
输出:
*
*
*
*
示例 2
输入:5
输出:
*
*
*
*
*
c语言版本:
// 坑,吃一堑长一智,输出空格
#include
int main(void){
int n;
while(scanf("%d", &n)!=EOF){
for(int i=0;i<n;++i){
for(int j=0;j<i;++j)printf(" ");
printf("*");
for(int l=n-i;l>0;l--)printf(" ");
printf("\n");
}
}
}
c++版本:
java版本:
python版本:
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的正斜线形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成正斜线的“*”的数量。
输出描述:
针对每行输入,输出用“*”组成的正斜线。
示例:
示例1
输入:4
输出:
*
*
*
*
示例 2
输入:5
输出:
*
*
*
*
*
c语言版本:
// 坑,吃一堑长一智,输出空格
#include
int main(void){
int n;
while(scanf("%d", &n)!=EOF){
for(int i=0;i<n;++i){
for(int l=n-i;l>1;l--)printf(" ");
printf("*");
for(int j=0;j<i;++j)printf(" ");
printf("\n");
}
}
}
c++版本:
java版本:
python版本:
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的X形图案。
输入描述:
多组输入,一个整数(2~20),表示输出的行数,也表示组成“X”的反斜线和正斜线的长度。
输出描述:
针对每行输入,输出用“*”组成的X形图案。
示例:
示例 1
输入:5
输出:
* *
* *
*
* *
* *
示例 2
输入:6
输出:
* *
* *
**
**
* *
* *
c语言版本:
#include
int main(void){
int n;
while (scanf("%d",&n)!=EOF) {
for (int i = 0; i < n; ++i) {
for(int j=0;j<n;j++){
if(i==j || j==n-i-1) printf("*");
else printf(" ");
}
printf("\n");
}
}
return 0;
}
c++版本:
java版本:
python版本:
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”正方形图案。
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成正方形边的“*”的数量。
输出描述:
针对每行输入,输出用“*”组成的“空心”正方形,每个“*”后面有一个空格。
示例:
示例1
输入:4
输出:
* * * *
* *
* *
* * * *
c语言版本:
#include
int main(void ) {
int n;
while (scanf("%d", &n)!=EOF) {
for(int i=0;i<n;i++)printf("* ");
printf("\n");
for(int i=1;i<n-1;i++){
printf("* ");
for(int i=1;i<n-1;++i)printf(" ");
printf("* \n");
}
for(int i=0;i<n;i++)printf("* ");
printf("\n");
}
return 0;
}
c++版本:
java版本:
python版本:
题目描述:
KiKi学习了循环,BoBo老师给他出了一系列打印图案的练习,该任务是打印用“*”组成的“空心”三角形图案。
输入描述:
多组输入,一个整数(3~20),表示输出的行数,也表示组成三角形边的“*”的数量。
输出描述:
针对每行输入,输出用“*”组成的“空心”三角形,每个“*”后面有一个空格。
示例:
示例1
输入:4
输出:
*
* *
* *
* * * *
c语言版本:
#include
int main(void ) {
int n;
while (scanf("%d", &n)!=EOF) {
printf("* ");
for(int i=1;i<n;++i)printf(" ");
printf("\n");
for(int i=1;i<n-1;i++){
printf("* ");
for(int j=1;j<i;j++)printf(" ");
printf("* ");
for(int j=1;j<n-i;++j)printf(" ");
printf("\n");
}
for(int j=0;j<n;j++) printf("* ");
printf("\n");
}
return 0;
}
c++版本:
java版本:
python版本:
题目描述:
今年是2019年,KiKi想知道1~2019中有多少个包含数字9的数。包含数字的数是指有某一位是“9”的数,例如“2019”、“199”等。
输入描述:
无
输出描述:
一行,一个整数,表示1~2019中共有多少个数包含数字9。
c语言版本:
#include
int main(void ) {
int n=0;
int m;
for(int i=1;i<2020;++i){
m = i;
while(m){
if(m%10 == 9){
n++;
break;
}
m /=10;
}
}
printf("%d\n",n);
return 0;
}
c++版本:
java版本:
python版本:
题目描述:
输入NxM矩阵,矩阵元素均为整数,计算其中大于零的元素之和。
输入描述:
第一行为N M(N: 矩阵行数;M: 矩阵列数,且M,N<=10),接下来的N行为矩阵各行。
输出描述:
一行,其中大于零的元素之和
示例:
示例1
输入:
3 3
2 3 4
-5 -9 -7
0 8 -4
输出:17
c语言版本:
#include
int main(void ) {
int m,n;
int num,sum=0;
scanf("%d %d", &m,&n);
getchar();
for(int i=0;i<m;++i){
for(int j=0;j<n;++j){
scanf("%d", &num);
if(num>0)sum+=num;
}
getchar();
}
printf("%d\n",sum);
return 0;
}
c++版本:
java版本:
python版本:
题目描述:
有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。
输入描述:
共三行,
第一行输入一个整数(0≤N≤50)。
第二行输入N个升序排列的整数,输入用空格分隔的N个整数。
第三行输入想要进行插入的一个整数。
输出描述:
输出为一行,N+1个有序排列的整数。
示例:
示例1
输入:
7
5 30 40 50 60 70 90
20
输出:5 20 30 40 50 60 70 90
c语言版本:
#include
#include
int main(void ) {
int m;
int num;
scanf("%d", &m);
getchar();
int* a=(int*)malloc(sizeof(int)*8);
for(int i=0;i<m;++i) scanf("%d", a+i);
getchar();
scanf("%d",&num);
int id=-1;
if(num<a[0]){
printf("%d ", num);
for(int i=0;i<m;++i)printf("%d ",a[i]);
}else if(num>a[m-1]){
for(int i=0;i<m;++i)printf("%d ",a[i]);
printf("%d ", num);
}else{
for(int i=0;i<m;++i){
if(a[i]<num)printf("%d ",a[i]);
else{
id = i;
break;
}
}
printf("%d ",num);
for(int i=id;i<m;++i)printf("%d ",a[i]);
}
printf("\n");
free(a);
return 0;
}
c++版本:
java版本:
python版本:
题目描述:
输入n个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次
出现的位置,删除其余位置。
输入描述:
输入包含两行,第一行包含一个正整数n(1 ≤ n ≤ 1000),表示第二行序列中数字的个数;第二行包含n个整数
(范围1~5000),用空格分隔。
输出描述:
输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔。
示例:
示例1
输入:
5
10 12 93 12 75
输出:
10 12 93 75
c语言版本:
#include
#include
int main(void ) {
int m;
scanf("%d", &m);
getchar();
int* a=(int*)malloc(sizeof(int)*8);
int* b=(int*)malloc(sizeof(int)*8);
int id=1;
for(int i=0;i<m;++i) scanf("%d", a+i);
b[0]=a[0];
getchar();
int flag=0;
for(int i=0;i<m;i++){
for(int j =0;j<id;j++){
if(a[i]==a[j]){
flag = 1;
break;
}
}
if(flag)flag = 0;
else b[id++]=a[i];
}
for(int i=0;i<id;++i)printf("%d ",b[i]);
printf("\n");
free(b);
free(a);
return 0;
}
c++版本:
java版本:
python版本:
题目描述:
KiKi得到了两个n行m列的矩阵,他想知道两个矩阵是否相等,请你回答他。(当两个矩阵对应数组元素都相等时两个矩阵相等)。
输入描述:
第一行包含两个整数n和m,表示两个矩阵包含n行m列,用空格分隔。
从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。
从n+2行到2n+1,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第二个矩阵中的元素。
1 < n,m < 10
输出描述:
一行,如果两个矩阵相等输出"Yes"并换行,否则输出"No"并换行。
示例:
示例1
输入:
2 2
1 2
3 4
1 2
3 4
输出:Yes
c语言版本:
#include
#include
int main(void ) {
int m,n;
scanf("%d %d", &m,&n);
getchar();
int** a=(int**)malloc(sizeof(int*)*m);
for(int i=0;i<m;++i)a[i]=(int*)malloc(sizeof(int)*n);
for(int i=0;i<m;++i) {
for(int j=0;j<n;++j) scanf("%d",a[i]+j);
getchar();
}
int flag=0;
int num;
for(int i=0;i<m;++i) {
for(int j=0;j<n;++j){
scanf("%d", &num);
if(num != a[i][j]){
flag = 1;
break;
}
}
if(flag)break;
getchar();
}
if(!flag) printf("Yes\n");
else printf("No\n");
for(int i=0;i<m;++i)free(a[i]);
free(a);
return 0;
}
c++版本:
java版本:
python版本:
本题目全部来自牛客网,如果侵权,请留言删除