目录
7-62 兔子繁衍问题
一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才可以达到N对?
输入格式:
输入在一行中给出一个不超过10000的正整数N。
输出格式:
在一行中输出兔子总数达到N最少需要的月数。
输入样例:
30
输出样例:
9
// 1 1 2 3 5 8 13 21 34
#include <stdio.h>
// 1.递归
// int Fib(int x){
// if(x<=1) return x;
// return Fib(x-1)+Fib(x-2);
// }
// 2.迭代
int Fib(int x){
if(x==1) return 1;
int a=0,b=1,c;
for(int i=2;i<=x;i++){
c=a+b;
a=b;
b=c;
}
return b;
}
int a[50];
int main(){
int n;scanf("%d",&n);
int cnt=1;
for(int i=1;i<=25;i++){// 1.计算斐波那契数列
a[cnt++]=Fib(i);
}
for(int i=1;i<=cnt;i++){// 2.
if(a[i]>=n){
printf("%d",i);
break;
}
}
return 0;
}
7-63 验证“哥德巴赫猜想”
数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。
输入格式:
输入在一行中给出一个(2, 2 000 000 000]范围内的偶数N。
输出格式:
在一行中按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。
输入样例:
24
输出样例:
24 = 5 + 19
#include <stdio.h>
int isPrime(int x){
if(x<=3) return 1;
if(x%2==0 || x%3==0) return 0;
for(int i=5;i*i<=x;i+=6){
if(x%i==0 || x%(i+2)==0) return 0;
}
return 1;
}
int main(){
int n;scanf("%d",&n);
int p,q;
for(int i=2;i<=n/2;i++){
if(isPrime(i) && isPrime(n-i)){
p=i;
q=n-i;
break;
}
}
printf("%d = %d + %d",n,p,q);
return 0;
}
// 20亿以内的偶数都可以分解成两个素数之和。
// 按照格式“N = p + q”输出N的素数分解,其中p ≤ q均为素数。
// 要求p最小
7-64 求整数的位数及各位数字之和
对于给定的正整数N,求它的位数及其各位数字之和。
输入格式:
输入在一行中给出一个不超过10 ^9 的正整数N。
输出格式:
在一行中输出N的位数及其各位数字之和,中间用一个空格隔开。
输入样例:
321
输出样例:
3 6
#include <stdio.h>
int main(){
int num;scanf("%d",&num);
int cnt=0,sum=0;
while(num){
cnt++;
sum+=num%10;
num/=10;
}
printf("%d %d",cnt,sum);
return 0;
}
7-65 输出三角形字符阵列
本题要求编写程序,输出n行由大写字母A开始构成的三角形字符阵列。
输入格式:
输入在一行中给出一个正整数n(1≤n<7)。
输出格式:
输出n行由大写字母A开始构成的三角形字符阵列。格式见输出样例,其中每个字母后面都有一个空格。
输入样例:
4
输出样例:
A B C D
E F G
H I
J
#include <stdio.h>
int main(){
int n;scanf("%d",&n);
char ch='A';
for(int i=0;i<n;i++){
for(int j=i+1;j<=n;j++){
printf("%c ",ch);
ch++;
}
printf("\n");
}
return 0;
}
7-66 找完数
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。
输入格式:
输入在一行中给出2个正整数m和n(1<m≤n≤10000),中间以空格分隔。
输出格式:
逐行输出给定范围内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + … + 因子k”,其中完数和因子均按递增顺序给出。若区间内没有完数,则输出“None”。
输入样例:
2 30
输出样例:
6 = 1 + 2 + 3
28 = 1 + 2 + 4 + 7 + 14
#include <stdio.h>
int main(){
int m,n;scanf("%d %d",&m,&n);
int flag=0; // 区间内没有完数
for(int i=m;i<=n;i++){
int sum=0,X=0,cnt=0;
for(int j=1;j<i;j++){
if(i%j==0) {
sum+=j;
cnt++;
}
}
if(sum==i){
flag=1; // 区间内有完数
printf("%d =",i);
X=1;
}
if(X==1){
for(int j=1;j<i;j++){
if(i%j==0) {
printf(" %d",j);
if(cnt-1) printf(" +"),cnt--;
}
}
printf("\n");
}
}
if(!flag) printf("None");
return 0;
}
7-67 输出整数各位数字
本题要求编写程序,对输入的一个整数,从高位开始逐位分割并输出它的各位数字。
输入格式:
输入在一行中给出一个长整型范围内的非负整数。
输出格式:
从高位开始逐位输出该整数的各位数字,每个数字后面有一个空格。
输入样例:
123456
输出样例:
1 2 3 4 5 6
#include <stdio.h>
int a[1009];
int main(){
long int x;scanf("%ld",&x);
if(x==0) {
printf("0 ");
return 0;
}
int cnt=0;
while(x){
a[cnt++]=x%10;
x/=10;
}
for(int i=cnt-1;i>=0;i--){
printf("%d ",a[i]);
}
return 0;
}
7-68 近似求PI
本题要求编写程序,根据下式求π的近似值,直到最后一项小于给定精度eps。
输入格式:
输入在一行中给出精度eps,可以使用以下语句来读输入:
scanf(“%le”, &eps);
输出格式:
在一行内,按照以下格式输出π的近似值(保留小数点后5位):
PI = 近似值
输入样例:
1E-5
输出样例:
PI = 3.14158
#include <stdio.h>
int main(){
double eps;
scanf("%le", &eps);
double sum=1.0;
double temp=1.0;
for(int i=1;temp>=eps;i++){
temp=temp*i/(2*i+1);
sum+=temp;
}
printf("PI = %.5f",sum*2);
return 0;
}
// 直到最后一项小于给定精度eps。
7-69 打印九九口诀表
下面是一个完整的下三角九九口诀表:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:
4
输出样例:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
#include <stdio.h>
int main(){
int n;scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
printf("%d*%d=%-4d",j,i,j*i);
}
printf("\n");
}
return 0;
}
7-70 到底是不是太胖了
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。真实体重与标准体重误差在10%以内都是完美身材(即 | 真实体重 − 标准体重 | < 标准体重×10%)。已知市斤是公斤的两倍。现给定一群人的身高和实际体重,请你告诉他们是否太胖或太瘦了。
输入格式:
输入第一行给出一个正整数N(≤ 20)。随后N行,每行给出两个整数,分别是一个人的身高H(120 < H < 200;单位:厘米)和真实体重W(50 < W ≤ 300;单位:市斤),其间以空格分隔。
输出格式:
为每个人输出一行结论:如果是完美身材,输出You are wan mei!;如果太胖了,输出You are tai pang le!;否则输出You are tai shou le!。
输入样例:
3
169 136
150 81
178 155
输出样例:
You are wan mei!
You are tai shou le!
You are tai pang le!
// 标准体重 = (身高-100)*0.9
// 完美身材:真实体重 - 标准体重 < 标准体重 * 0.1
#include <stdio.h>
struct People{
double height; // 身高
double weight; // 真实体重
double weight_bz; // 标准体重
};
int main(){
struct People a[21];
int n;scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%lf %lf",&a[i].height,&a[i].weight);// 厘米 市斤:公斤的两倍
a[i].weight/=2.0; // 单位转换
a[i].weight_bz=(a[i].height-100.0)*0.9;
}
// 审题!?! |真实体重 - 标准体重| < 标准体重*0.1
for(int i=0;i<n;i++){
// printf("%d %d %d\n",a[i].weight,a[i].weight_bz,a[i].height);
if(fabs(a[i].weight-a[i].weight_bz)<a[i].weight_bz*0.1) printf("You are wan mei!\n");
else if(a[i].weight>a[i].weight_bz) printf("You are tai pang le!\n");
else if(a[i].weight<a[i].weight_bz) printf("You are tai shou le!\n");
}
return 0;
}
// abs() 用于int类型;fabs() 用于浮点类型
//
7-71 计算阶乘和
对于给定的正整数N,需要你计算 S=1!+2!+3!+…+N!。
输入格式:
输入在一行中给出一个不超过10的正整数N。
输出格式:
在一行中输出S的值。
输入样例:
3
输出样例:
9
#include <stdio.h>
int main(){
int n;scanf("%d",&n);
int ans=0;
for(int i=1;i<=n;i++){
int x=1;
for(int j=1;j<=i;j++){
x*=j;
}
ans+=x;
}
printf("%d",ans);
return 0;
}
7-72 跟奥巴马一起画方块
美国总统奥巴马不仅呼吁所有人都学习编程,甚至以身作则编写代码,成为美国历史上首位编写计算机代码的总统。2014年底,为庆祝“计算机科学教育周”正式启动,奥巴马编写了很简单的计算机代码:在屏幕上画一个正方形。现在你也跟他一起画吧!
输入格式:
输入在一行中给出正方形边长N(3≤N≤21)和组成正方形边的某种字符C,间隔一个空格。
输出格式:
输出由给定字符C画出的正方形。但是注意到行间距比列间距大,所以为了让结果看上去更像正方形,我们输出的行数实际上是列数的50%(四舍五入取整)。
输入样例:
10 a
输出样例:
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
aaaaaaaaaa
#include <stdio.h>
#include <math.h>
int main(){
int n;
char c;scanf("%d %c",&n,&c);
for(int i=0;i<round(n*0.5);i++){
for(int j=0;j<n;j++) printf("%c",c);
printf("\n");
}
return 0;
}
7-73 最佳情侣身高差
专家通过多组情侣研究数据发现,最佳的情侣身高差遵循着一个公式:(女方的身高)×1.09 =(男方的身高)。如果符合,你俩的身高差不管是牵手、拥抱、接吻,都是最和谐的差度。
下面就请你写个程序,为任意一位用户计算他/她的情侣的最佳身高。
输入格式:
输入第一行给出正整数N(≤10),为前来查询的用户数。随后N行,每行按照“性别 身高”的格式给出前来查询的用户的性别和身高,其中“性别”为“F”表示女性、“M”表示男性;“身高”为区间 [1.0, 3.0] 之间的实数。
输出格式:
对每一个查询,在一行中为该用户计算出其情侣的最佳身高,保留小数点后2位。
输入样例:
2
M 1.75
F 1.8
输出样例:
1.61
1.96
#include <stdio.h>
struct CP{
char sex;
double height;
};
int main(){
struct CP a[11];
int n;scanf("%d",&n);
getchar();
for(int i=0;i<n;i++){
scanf("%c %lf",&a[i].sex,&a[i].height);
getchar();
}
// double ans;
for(int i=0;i<n;i++){
if(a[i].sex=='F') printf("%.2f\n",a[i].height*1.09);
else if(a[i].sex=='M') printf("%.2f\n",a[i].height/1.09);
}
// printf("%.2f",1.8*1.09);
return 0;
}
// 使用 scanf 读取字符或字符串时,其之前和之后都要使用getchar()
// 清除缓冲区的换行符
7-74 稳赢
大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:
现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。
输入格式:
输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。
输出格式:
对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。
输入样例:
2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End
输出样例:
Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(){
int n;scanf("%d",&n);getchar();
char input[8];
int cnt=0;
// 1.
// while(gets(input)){
// // getchar();
// 2.
while(scanf("%[^\n]",input)){
getchar();
if(strcmp(input,"End")==0) break;
cnt++;
// printf("第%d轮 输入%s\n",cnt,input);
if(cnt-1==n){
if(input[0]=='J') printf("JianDao\n"); // 输入为剪刀
else if(input[0]=='B') printf("Bu\n"); // 输入为布
else if(input[0]=='C') printf("ChuiZi\n"); // 输入为剪刀
cnt=0;
}
else{
// 输入的出招
if(input[0]=='J') printf("ChuiZi\n"); // 输入为剪刀
else if(input[0]=='B') printf("JianDao\n"); // 输入为布
else if(input[0]=='C') printf("Bu\n"); // 输入为剪刀
}
}
return 0;
}
// 使用gets(s) 和 scanf("%[^\n]",s) 前需要使用getchar() 清除之前的缓冲区
// 使用gets之后,不需要使用 getchar 获取缓冲区中的换行符;
// 后者需要。
// scanf(" %c",&ch)
// scanf("%s",input)
// 该写法可以强制跳过字符前的空白字符
// 即%c前加上一个空格,表示跳过零个或多个空白字符。
7-75 幸运彩票
彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。
输入格式:
输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一张彩票的 6 位数字。
输出格式:
对每张彩票,如果它是幸运的,就在一行中输出 You are lucky!;否则输出 Wish you good luck.。
输入样例:
2
233008
123456
输出样例:
You are lucky!
Wish you good luck.
#include <stdio.h>
int a[109];
int main(){
int n;scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
int sum_pre=0,sum_last=0,cnt=0;
for(int i=0;i<n;i++){
sum_pre=0,sum_last=0,cnt=0;
while(a[i]){
cnt++;
if(cnt<=3){
sum_last+=a[i]%10;
a[i]/=10;
}
else{
sum_pre+=a[i]%10;
a[i]/=10;
}
}
// printf("%d %d\n",sum_pre,sum_last);
if(sum_pre==sum_last) printf("You are lucky!\n");
else printf("Wish you good luck.\n");
}
return 0;
}
7-76 吃鱼还是吃肉
国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重为 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。
现在你要根据小宝宝的身高体重,给出补充营养的建议。
输入格式:
输入在第一行给出一个不超过 10 的正整数 N,随后 N 行,每行给出一位宝宝的身体数据:
性别 身高 体重
其中性别是 1 表示男生,0 表示女生。身高和体重都是不超过 200 的正整数。
输出格式:
对于每一位宝宝,在一行中给出你的建议:
如果太矮了,输出:duo chi yu!(多吃鱼);
如果太瘦了,输出:duo chi rou!(多吃肉);
如果正标准,输出:wan mei!(完美);
如果太高了,输出:ni li hai!(你厉害);
如果太胖了,输出:shao chi rou!(少吃肉)。
先评价身高,再评价体重。两句话之间要有 1 个空格。
输入样例:
4
0 130 23
1 129 27
1 130 30
0 128 27
输出样例:
ni li hai! duo chi rou!
duo chi yu! wan mei!
wan mei! shao chi rou!
duo chi yu! shao chi rou!
#include <stdio.h>
typedef struct Baby{
int sex;
int height;
int weight;
}Baby;
int main(){
Baby B[109];
int n;scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d %d %d",&B[i].sex,&B[i].height,&B[i].weight);
}
for(int i=0;i<n;i++){
// printf("%d %d %d\n",B[i].sex,B[i].height,B[i].weight);
if(B[i].sex==1){
// 评价身高
if(B[i].height>130) printf("ni li hai!");
else if(B[i].height<130) printf("duo chi yu!");
else printf("wan mei!");
printf(" ");
// 评价体重
if(B[i].weight>27) printf("shao chi rou!\n");
else if(B[i].weight<27) printf("duo chi rou!\n");
else printf("wan mei!\n");
}
else{
// 评价身高
if(B[i].height>129) printf("ni li hai!");
else if(B[i].height<129) printf("duo chi yu!");
else printf("wan mei!");
printf(" ");
// 评价体重
if(B[i].weight>25) printf("shao chi rou!\n");
else if(B[i].weight<25) printf("duo chi rou!\n");
else printf("wan mei!\n");
}
}
return 0;
}
7-77 求最大值及其下标
本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。
输入格式:
输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。
输出格式:
在一行中输出最大值及最大值的最小下标,中间用一个空格分开。
输入样例:
6
2 8 10 1 9 10
输出样例:
10 2
#include <stdio.h>
int a[10];
int main(){
int n;scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
int max=a[0],index=0;
for(int i=1;i<n;i++){
if(a[i]>max){
max=a[i];
index=i;
}
}
printf("%d %d",max,index);
return 0;
}
7-78 将数组中的数逆序存放
本题要求编写程序,将给定的n个整数存入数组中,将数组中的这n个数逆序存放,再按顺序输出数组中的元素。
输入格式:
输入在第一行中给出一个正整数n(1≤n≤10)。第二行输入n个整数,用空格分开。
输出格式:
在一行中输出这n个整数的处理结果,相邻数字中间用一个空格分开,行末不得有多余空格。
输入样例:
4
10 8 1 2
输出样例:
2 1 8 10
#include <stdio.h>
int a[11];
int main(){
int n;scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
for(int i=n-1;i>=0;i--) {
if(i==0) printf("%d",a[i]);
else printf("%d ",a[i]);
}
return 0;
}
7-79 字符串逆序
输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。
输入格式:
输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。
输出格式:
在一行中输出逆序后的字符串。
输入样例:
Hello World!
输出样例:
!dlroW olleH
#include <stdio.h>
char s[89];
int main(){
gets(s);
int l=0,r=strlen(s)-1;
while(l<r){
char tmp=s[l];
s[l]=s[r];
s[r]=tmp;
l++;r--;
}
printf("%s",s);
return 0;
}
7-80 统计一行文本的单词个数
本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
输入格式:
输入给出一行字符。
输出格式:
在一行中输出单词个数。
输入样例:
Let’s go to room 209.
输出样例:
5
// 统计单词个数,单词以空格或\0结尾,
#include <stdio.h>
char ch[1009];
char ch2[1009];
int main(){
gets(ch);
int res=0;
int flag=1;
for(int i=0;ch[i]!='\0';i++){
if (ch[i]!=' ' && (ch[i+1]==' ' || ch[i+1]=='\0')) res++;
}
printf("%d",res);
return 0;
}
7-81 统计大写辅音字母
英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序,统计给定字符串中大写辅音字母的个数。
输入格式:
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式:
输出在一行中给出字符串中大写辅音字母的个数。
输入样例:
HELLO World!
输出样例:
4
#include <stdio.h>
char ch[81];
int main(){
gets(ch);
int cnt=0;
for(int i=0;ch[i]!='\0';i++){
if(ch[i]!='A' && ch[i]!='E' && ch[i]!='I' && ch[i]!='O' && ch[i]!='U' && (ch[i]>='A' && ch[i]<='Z'))
cnt++;
}
printf("%d",cnt);
return 0;
}
7-82 查找整数
本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。
输入格式:
输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。
输出格式:
在一行中输出X的位置,或者“Not Found”。
输入样例1:
5 7
3 5 7 1 9
输出样例1:
2
输入样例2:
5 7
3 5 8 1 9
输出样例2:
Not Found
#include <stdio.h>
int a[21];
int main(){
int n,x;scanf("%d %d",&n,&x);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
int res=0,flag=0;
for(int i=0;i<n;i++){
if(a[i]==x){
res=i;
flag=1;
break;
}
}
if(flag) printf("%d",res);
else printf("Not Found");
return 0;
}
7-83 交换最小值和最大值
本题要求编写程序,先将输入的一系列整数中的最小值与第一个数交换,然后将最大值与最后一个数交换,最后输出交换后的序列。
注意:题目保证最大和最小值都是唯一的。
输入格式:
输入在第一行中给出一个正整数N(≤10),第二行给出N个整数,数字间以空格分隔。
输出格式:
在一行中顺序输出交换后的序列,每个整数后跟一个空格。
输入样例:
5
8 2 5 1 4
输出样例:
1 2 5 4 8
#include <stdio.h>
int a[11];
int main(){
int n;scanf("%d",&n);
for(int i=0;i<n;i++) scanf("%d",&a[i]);
int max=-1,min=999999999;
int max_index=0,min_index=0;
for(int i=0;i<n;i++) {
if(a[i]>max){
max_index=i;
max=a[i];
}
else if(a[i]<min){
min=a[i];
min_index=i;
}
}
int temp1=a[0],temp2=a[n-1]; // 记录第一个和最后一个
if(a[0]==max && a[n-1]==min){ //1.第一个为最大值 最后一个为最小
a[0]=temp2;
a[n-1]=temp1;
}
else if(a[0]==max) { // 2.第一个为最大值
a[0]=min;
a[n-1]=temp1;
a[min_index]=temp2;
}
else if(a[n-1]==min){ // 3.最后一个为最小
a[n-1]=max;
a[0]=temp2;
a[max_index]=temp1;
}
else if(a[0]!=max && a[n-1]!=min){ // 最大最小值在中间
a[0]=min;
a[min_index]=temp1;
a[n-1]=max;
a[max_index]=temp2;
}
for(int i=0;i<n;i++) printf("%d ",a[i]);
return 0;
}