1、加法變乘法
題目描述:
?已知X可以寫成從1開始連續(xù)若干個整數(shù)的和, 現(xiàn)在要求把其中兩個不相鄰的加號變乘號,使得結(jié)果為Y。找出所有滿足條件的可能答案并輸出(把兩個乘號左邊的數(shù)字用小括號括起來,中間用英文逗號間隔,兩個括號之間不空格);若找不到滿足的條件,則輸出“NONE”字樣。編寫程序,完成n組數(shù)據(jù)的判定。
例如:當X為1225,Y為2015時
因為:1+2+3+ ... + 49 = 1225
???1+2+3+...+1011+12+...+2728+29+...+49 = 2015
所以:一個解為(10,27)。
輸入
第一行為n值,接下來依次n行的第一個數(shù)據(jù)是加法結(jié)果X,第二個數(shù)據(jù)是變乘法后的結(jié)果Y,以空格間隔。
輸出
輸出n行,每一行的格式為“(,)(,)”(或者“NONE”)。請嚴格按照格式書寫,不能出現(xiàn)其它文字或符號。
樣例輸入
3
1225 2015
1224 2015
1275 2065
樣例輸出
(10,27)(16,24)
NONE
(10,27)(16,24)
題解:觀察題目,用X和Y減去變化的量,最后結(jié)果相同即滿足條件。
源代碼:
#include<stdio.h>
#include<string.h>
int main()
{
int i,j;
int x,y,n,flag;
scanf("%d",&n);
while(n--)
{
flag=1;
scanf("%d %d",&x,&y);
for(i=1;i<x;i++)
{
for(j=i+2;j<y;j++)
{
if(i*i-i+j*j-j-2==y-x) //化簡后的結(jié)果
{
flag=0;
printf("(%d,%d)",i,j);
}
}
}
if(flag==1)
{
printf("NONE");
}
printf("\n");
}
}
2、互滿數(shù)
題目描述
編寫求因子和函數(shù),該函數(shù)返回形參n的因子之和。要求調(diào)用該因子和函數(shù),求出x范圍內(nèi)(包含x)所有的互滿數(shù)。所謂互滿數(shù)是指:如果有兩個數(shù),每一個數(shù)的所有因子之和恰好等于對方,則稱這兩個數(shù)為“互滿數(shù)”。
輸入
從鍵盤輸入一個正整數(shù)x。
輸出
從小到大依次輸出互滿數(shù),每對互滿數(shù)用小括號括起來(小數(shù)在前,大數(shù)在后),中間用英文逗號間隔,兩個括號之間不空格。
樣例輸入
10000
樣例輸出
(220,284)(1184,1210)(2620,2924)(5020,5564)(6232,6368)
本題剛開始我的思路是:用函數(shù)寫。先寫一個函數(shù)專門用來計算每個數(shù)的因子和,再在主函數(shù)里面利用循環(huán)和、引入函數(shù)、判斷條件的方式來找出一定范圍內(nèi)的互滿數(shù)。
源代碼:
#include<stdio.h>
int SUM(int n)
{
int i,sum=0;
for(i=1;i<=n/2;i++)
{
if(n%i==0)
{
sum=sum+i;
}
}
return sum;
}
int main()
{
int x;
scanf("%d",&x);
int i,j;
int t1,t2;
for(i=2;i<x;i++)
{
t1=SUM(i);
for(j=i+1;j<x;j++)
{
t2=SUM(j);
if(t1==j && t2==i && i!=j)
{
printf("(%d,%d)",i,j);
}
}
}
}
但是這樣的代碼由于循環(huán)嵌套的過多,導致過大的數(shù)字運行速度非常慢,會超時,所以這樣的方法是無法提交正確的。
后來咨詢了大佬,大佬給了一個相對我的而言比較優(yōu)化的代碼:
#include<stdio.h>
int main()
{
int x;
scanf("%d",&x);
int i,j,k;
int sum1=0,sum2=0;
for(i=2;i<=x;i++)
{
sum1=0,sum2=0;
for(j=1;j<=i/2;j++)
{
if(i%j==0)
{
sum1=sum1+j;
}
}
if(i>=sum1)
continue; //減少重復
for(k=1;k<=sum1/2;k++)
{
if(sum1%k==0)
{
sum2=sum2+k;
}
}
if(sum2==i)
{
printf("(%d,%d)",sum1<sum2?sum1:sum2,sum1>sum2? sum1:sum2); //雙目運算:第二個逗號之前 比較sum1和sum2的大小,如果sum1比sum2小,則輸出sum1。 第二個逗號之后 比較sum1和sum2的大小,如果sum1比sum2大,則輸出sum1。
}
}
}
3、按價格排序并輸出
題目描述
一本圖書的信息有: 編號、書名、作者、出版社、出版日期、價格。設計一個結(jié)構(gòu)體類型描述圖書信息,并實現(xiàn)輸入多本(不超過20本)圖書信息,存儲在該結(jié)構(gòu)體的數(shù)組變量中,按價格從低到高排序并輸出圖書信息。
輸入
第一行輸入圖書的本數(shù),以后每行輸入一本圖書的信息;每本圖書信息的輸入說明如下:輸入時,各個信息之間空格間隔;編號為整數(shù);書名、作者、出版社均為長度不超過20的字符串;出版日期的輸入格式為yyyy-mm-dd,例如(2017-5-2);價格為實數(shù)。
輸出
以列表方式輸出:(注意,輸出中除了漢字外,其他符號均為英文符號
第一行輸出標題行,分別輸出:“編號”、“書名”、“作者”、“出版社”、“出版日期”、“價格”;相鄰兩項之間以一個空格間隔。(參見樣例)
以后每行輸出一本書,依次輸出<編號>,<書名>,<作者>,<出版社>,<出版日期>,<價格(小數(shù)點后保留2位)>,相鄰兩項之間以一個空格間隔。(參見樣例)
樣例輸入
4
2 數(shù)據(jù)結(jié)構(gòu) 耿國華 高等教育出版社 2005-7-1 28.00
4 大學英語 LEE 清華出版社 1990-4-1 34.6
6 草莓點心 噼里啪啦 二十一世紀出版社 2008-8-8 18.00
7 車來了 噼里啪啦 二十一世紀出版社 2008-9-9 18.50
樣例輸出
編號 書名 作者 出版社 出版日期 價格
6 草莓點心 噼里啪啦 二十一世紀出版社 2008年8月8日 18.00
7 車來了 噼里啪啦 二十一世紀出版社 2008年9月9日 18.50
2 數(shù)據(jù)結(jié)構(gòu) 耿國華 高等教育出版社 2005年7月1日 28.00
4 大學英語 LEE 清華出版社 1990年4月1日 34.60
本題就是簡單的結(jié)構(gòu)體的運用,冒泡排序的運用
代碼源:
#include<stdio.h>
struct Book
{
int num;
char name[20];
char editor[20];
char pub[40];
int year;
int moth;
int day;
float price;
};
int main()
{
int n;
scanf("%d",&n);
struct Book book[n];
struct Book t;
int i,j;
for(i=0;i<n;i++)
{
scanf("%d",&book[i].num);
scanf("%s",book[i].name);
scanf("%s",book[i].editor);
scanf("%s",book[i].pub);
scanf("%d-%d-%d",&book[i].year,&book[i].moth,&book[i].day);
scanf("%f",&book[i].price);
}
for(i=0;i<n;i++)
{
for(j=0;j<n-1-i;j++)
{
if(book[j].price>book[j+1].price)
{
t=book[j];
book[j]=book[j+1];
book[j+1]=t;
}
}
}
printf("編號 書名 作者 出版社 出版日期 價格\n");
for(i=0;i<n;i++)
{
printf("%d ",book[i].num);
printf("%s ",book[i].name);
printf("%s ",book[i].editor);
printf("%s ",book[i].pub);
printf("%d年%d月%d日 ",book[i].year,book[i].moth,book[i].day);
printf("%0.2f\n",book[i].price);
}
}
4、乘積最大
題目描述
設有一個長度為N的數(shù)字串,要求選手使用K個乘號將它分成K+1個部分,找出一種分法,使得這K+1個部分的乘積能夠為最大。
同時,為了幫助選手能夠正確理解題意,主持人還舉了如下的一個例子:
有一個數(shù)字串:312, 當N=3,K=1時會有以下兩種分法:
1、3 x12=36
2、31 x 2=62
這時,符合題目要求的結(jié)果是:31*2=62。
現(xiàn)在,請你幫助你的好朋友設計一個程序,求得正確的答案。
輸入
輸入共有兩行:
第一行共有2個自然數(shù)N,K(4≤N≤10,1≤K≤5)。
第二行是一個長度為N的數(shù)字串。
輸出
一個整數(shù),表示所求得的最大乘積。
樣例輸入
4 2
1231
樣例輸出
62
本題要運用動態(tài)規(guī)劃
暫時沒有完成,等更新......
5、星系炸彈
題目描述
在X星系的廣袤空間中漂浮著n個X星人造“炸彈”,每個炸彈都可以設定多少天之后爆炸。例如:阿爾法炸彈2015年1月1日放置,定時為15天,則它在2015年1月16日,星期五爆炸。
輸入
第一行為n值,以后連續(xù)n行為炸彈放置日期(格式為 年-月-日)和定時天數(shù)(整型)。
輸出
輸出n行,每行為爆炸的準確日期(格式為 yyyy年mm月dd日 星期幾),日期和星期之間用一個空格隔開。請嚴格按照格式書寫,不能出現(xiàn)其它文字或符號。
提示信息:
星期的數(shù)據(jù)集合是【星期日、星期一、星期二、星期三、星期四、星期五、星期六】。1900年1月1日,是星期一。
樣例輸入
2
1999-9-9 800
2014-11-9 1000
樣例輸出
2001年11月17日 星期六
2017年08月05日 星期六
該題及為時間計算題,要注意對平年閏年的推導計算和星期的推導計算
代碼源:
#include<stdio.h>
void DAY(int year,int month,int day,int days)
{
char week[7][10]={"星期一","星期二","星期三","星期四","星期五","星期六","星期日"};
int monthday[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int i;
int s=0,t;
for(i=0;i<days;i++)
{
day++;
if(day>monthday[month-1])
{
day=1;
month++;
if(month==13)
{
month=1;
year++;
if((year%4==0 && year%100!=0) ||year%400==0)
{
monthday[1]=29;
}
else
monthday[1]=28;
}
}
}
if(month>9 && day>9)
{
printf("%d年%d月%d日 ",year,month,day);
}
if(month>9 && day<=9)
{
printf("%d年%d月0%d日 ",year,month,day);
}
if(month<=9 && day>9)
{
printf("%d年0%d月%d日 ",year,month,day);
}
else if(month<=9 && day<=9)
{
printf("%d年0%d月0%d日 ",year,month,day);
}
for(i=1990;i<year;i++)
{
if((i%4==0 && i%100!=0) ||i%400==0)
{
s=s+366;
}
else
s=s+365;
}
if((year%4==0 && year%100!=0) ||year%400==0)
monthday[1]=29;
else
monthday[1]=28;
for(i=0;i<month-1;i++)
{
s=s+monthday[i];
}
s=s+day-1;
t=s%7;
printf("%s",week[t]);
}
int main()
{
int n;
int year,month,day,days;
scanf("%d",&n);
while(n--)
{
scanf("%d-%d-%d %d",&year,&month,&day,&days);
DAY(year,month,day,days);
printf("\n");
}
}
6、字符串求解前綴
題目描述
給定n組字符串,每組兩個字符串,以空格分開。找出這組兩個字符串的公共前綴,并輸出。
輸入
第一行輸入組數(shù)n,之后的n行,每行輸入兩個單詞,這兩個單詞以空格分隔。
輸出
輸出n行,每行為對應組中兩個單詞的公共前綴,或者【無公共前綴】。
樣例輸入
2
come component
shanxi beijing
樣例輸出
com
無公共前綴
提示
待統(tǒng)計的數(shù)據(jù)個數(shù)不超過10對,每個字符串的長度不超過20。
代碼源:
#include<stdio.h>
#include<string.h>
int main()
{
int n;
scanf("%d",&n);
char str1[10];
char str2[10];
char str[10];
int i,j,flag,t=0;
while(n--)
{
scanf("%s %s",&str1,&str2);
int len1=strlen(str1);
int len2=strlen(str2);
for(i=0;i<len1;i++)
{
if(str1[0]!=str2[0])
{
flag=1;
break;
}
else if(str1[i]==str2[i])
{
flag=0;
t++;
str[i]=str1[i];
}
else break;
}
if(flag!=0)
{
printf("無公共前綴\n");
}
else if(flag==0)
{
printf("%s\n",str);
}
}
}
7、在指定位置增加圖書信息
題目描述
一本圖書的信息有: 編號、書名、作者、出版社、出版日期、價格。設計一個結(jié)構(gòu)體類型描述圖書信息,并實現(xiàn)輸入多本(不超過20本)圖書信息,存儲在該結(jié)構(gòu)體的數(shù)組變量中。在增加加一本圖書到指定位置并輸出增加后的結(jié)果。
輸入
第一行輸入圖書的本數(shù)n。
以后的n行,每行輸入一本圖書的信息;每本圖書信息的輸入說明如下:輸入時,各個信息之間空格間隔;編號為整數(shù);書名、作者、出版社均為長度不超過30的字符串;出版日期的輸入格式為yyyy-mm-dd,例如(2017-5-2);價格為實數(shù)。
第n+2行輸入一個整數(shù)m,表示增加的圖書將成為第m本圖書。
第n+3行輸入待增加圖書的各項信息,格式同上。
輸出
以列表方式輸出增加后的結(jié)果:(注意,輸出中除了漢字外,其他符號均為英文符號)
第一行輸出標題行,分別輸出:“編號”、“書名”、“作者”、“出版社”、“出版日期”、“價格”;相鄰兩項之間以一個空格間隔。(參見樣例)
以后每行輸出一本書,依次輸出<編號>,<書名>,<作者>,<出版社>,<出版日期>,<價格(小數(shù)點后保留2位)>,相鄰兩項之間以一個空格間隔。(參見樣例)
樣例輸入
3
2 數(shù)據(jù)結(jié)構(gòu) 耿國華 高等教育出版社 2005-7-1 28.00
4 大學英語 LEE 清華出版社 1990-4-1 34.6
7 車來了 噼里啪啦 二十一世紀出版社 2008-9-9 18.50
3
1 高等數(shù)學 張三 高等教育出版社 1994-5-1 18.50
樣例輸出
編號 書名 作者 出版社 出版日期 價格
2 數(shù)據(jù)結(jié)構(gòu) 耿國華 高等教育出版社 2005年7月1日 28.00
4 大學英語 LEE 清華出版社 1990年4月1日 34.60
1 高等數(shù)學 張三 高等教育出版社 1994年5月1日 18.50
7 車來了 噼里啪啦 二十一世紀出版社 2008年9月9日 18.50
這道題同第3題有些類似,但因為這道題增加了插入操作,所以我覺得可能用鏈表寫會簡單一點,但是我實在是鏈表不精通,所以這個題我依然用的是結(jié)構(gòu)體數(shù)組的插入方法完成的,等后面如果我用鏈表完成了再來更新。
代碼源:
#include<stdio.h>
struct BOOK
{
int num;
char name[30];
char editor[30];
char pub[60];
int year;
int month;
int day;
float price;
};
int main()
{
int n,m;
scanf("%d",&n);
struct BOOK book[10];
struct BOOK t[10];
int i,j;
for(i=0;i<n;i++)
{
scanf("%d",&book[i].num);
scanf("%s",book[i].name);
scanf("%s",book[i].editor);
scanf("%s",book[i].pub);
scanf("%d-%d-%d",&book[i].year,&book[i].month,&book[i].day);
scanf("%f",&book[i].price);
}
scanf("%d",&m);
n=n+1;
scanf("%d",&t[m-1].num);
scanf("%s",t[m-1].name);
scanf("%s",t[m-1].editor);
scanf("%s",t[m-1].pub);
scanf("%d-%d-%d",&t[m-1].year,&t[m-1].month,&t[m-1].day);
scanf("%f",&t[m-1].price);
for(i=0;i<n;i++)
{
if(i<m-1)
{
t[i]=book[i];
}
else if(i>m-1)
{
t[i]=book[i-1];
}
}
printf("編號 書名 作者 出版社 出版日期 價格\n");
for(j=0;j<n;j++)
{
printf("%d ",t[j].num);
printf("%s ",t[j].name);
printf("%s ",t[j].editor);
printf("%s ",t[j].pub);
printf("%d年%d月%d日 ",t[j].year,t[j].month,t[j].day);
printf("%0.2f\n",t[j].price);
}
}
8、 黑色星期五
題目描述
有些西方人比較迷信,如果某個月的13號正好是星期五,他們就會覺得不太吉利,用古人的說法,就是“諸事不宜”。請你編寫一個程序,統(tǒng)計出在某個特定的年份中,出現(xiàn)了多少次既是13號又是星期五的情形,以幫助你的迷信朋友解決難題。
說明:
(1)一年有365天,閏年有366天,所謂閏年,即能被4整除且不能被100整除的年份,或是既能被100整除也能被400整除的年份;
(2)已知1998年1月1日是星期四,用戶輸入的年份肯定大于或等于1998年。
輸入
輸入只有一行,即某個特定的年份(大于或等于1998年)。
輸出
輸出只有一行,即在這一年中,出現(xiàn)了多少次既是13號又是星期五的情形,格式為【****年有*個黑色星期五】。
樣例輸入
1998
樣例輸出
1998年有3個黑色星期五
該題思想同第五題
代碼源:
#include<stdio.h>
int DAY(int year)
{
// char week[7][20]={"星期四","星期五","星期六","星期日","星期一","星期二","星期三"};
int monthday[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int i,j,t=0,s=0;
if((year%4==0 && year%100!=0) ||year%400==0)
{
monthday[1]=29;
}
else
monthday[1]=28;
for(i=1998;i<year;i++)
{
if((i%4==0 && i%100!=0) ||i%400==0)
{
s=s+366;
}
else
s=s+365;
}
for(i=0;i<12;i++)
{
if(i==0)
{
j=(s+13)%7-1;
}
else
{ s=s+monthday[i-1];
j=(s+13)%7-1;
}
if(j==1)
{
t++;
}
}
return t;
}
int main()
{
int year;
scanf("%d",&year);
int t;
t=DAY(year);
printf("%d年有%d個黑色星期五",year,t);
}
9.生日蠟燭
題目描述
某君從某年開始每年都舉辦一次生日party,并且每次都要吹熄與年齡相同根數(shù)的 蠟燭?,F(xiàn)在算起來,他一共吹熄了N根蠟燭。請問,他從多少歲開始辦生日party的,現(xiàn)在他多少歲?
例如:若N=236,因為236=26+27+28+29+30+31+32+33,所以,他從26歲開始辦生日party,他現(xiàn)在33歲。
輸入
輸入一共吹熄的蠟燭數(shù)N。
輸出
輸出他辦生日party的起止年齡數(shù),以空格隔開;若有多種情況,輸出起始年齡最小的一種情況。
樣例輸入
236
樣例輸出
26 33
代碼源:
#include<stdio.h>
int main()
{
int i=1,j,sum=0;
int n;
scanf("%d",&n);
while(sum!=n)
{
for(j=i;;j++)
{
sum=sum+j;
if(sum==n)
{
printf("%d %d",i,j);
break;
}
else if(sum>n)
{
sum=0;
break;
}
}
i++;
}
}
10、.特大整數(shù)的精確相加和相減
題目描述
特大整數(shù)用長整型也存不下,如果用雙精度實型存儲則會造成誤差,可以用字符數(shù)組存儲所有位,再按十進制由低到高逐位相加,同時考慮進位。
特別提示:
假設特大整數(shù)不超過30位。參與操作的數(shù)據(jù)中,被減數(shù)>減數(shù)。
算法分析:
1.初始化:將兩個特大整數(shù)輸入兩個字符數(shù)組,將兩個字符數(shù)組的各元素右移,使最低位的元素位置對齊,高位補0,為了存儲最高位的進位,位數(shù)多的數(shù)最高位前也應補一個0。
2.從最低位對應的數(shù)組元素開始將數(shù)字字符轉(zhuǎn)換為整型數(shù)據(jù)相加,因為數(shù)字字符‘0’對應的ASCII值是48,則:整型數(shù)據(jù)1+2,相當于 ('1'-48)+('2'-48),即'1'+'2'-96。
3.將和整除以10,余數(shù)就是該位的結(jié)果,并轉(zhuǎn)換為字符(整型數(shù)據(jù)+48)存入該位,商就是進位數(shù)。
4.再對高一位對應的數(shù)組元素操作,將該位數(shù)字字符轉(zhuǎn)換為整型相加,并與低位的進位數(shù)相加,將和整除以10,余數(shù)就是該位的結(jié)果,商就是本位的進位數(shù)。
5.重復4直到最高位。如果最高位相加時進位數(shù)大于0則將此進位數(shù)轉(zhuǎn)換為字符存入最高位。
輸入
第一行待運算的表達式個數(shù)n,之后連續(xù)的2n行每相鄰得兩行為一組。
輸出
依次輸出運算結(jié)果,共輸出2n行。前n行為相加的運算結(jié)果;后n行為相減的運算結(jié)果,每個結(jié)果獨占一行。
樣例輸入
3
123456789
23456789
999999999
999999999
1000000000
9999
樣例輸出
146913578
1999999998
1000009999
100000000
0
999990001
代碼源:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void swap(char target[]) {
int i;
int j;
char temp;
for(i = 0,j = strlen(target) - 1;i <= j;i++,j--) {
temp = target[i];
target[i] = target[j];
target[j] = temp;
}
}
void BigNumAdd(char a[],char b[]) {
int i;
char c[1001] = {0};
swap(a);
swap(b);
for(i = 0;i < strlen(a) && i < strlen(b);i++) {
c[i] += a[i] + b[i] - '0';
if(c[i] - '0' >= 10){
c[i] = c[i] - 10;
c[i+1] = 1;
}
}
if(strlen(a) == strlen(b)) {
if(c[i] == 1)
c[i]='1';
}
if(strlen(a) > strlen(b)){
if(c[i] == 1) {
for(;i < strlen(a);i++){
c[i] += a[i];
if(c[i] - '0' >= 10) {
c[i] = c[i] - 10;
c[i+1] = 1;
}
}
if(c[i-1] == '0')
c[i] = '1';
}
else {
for(;i < strlen(a);i++)
c[i] = a[i];
}
}
if(strlen(b) > strlen(a)){
if(c[i]==1){
for(;i < strlen(b);i++){
c[i] += b[i];
if(c[i] - '0' >= 10){
c[i] = c[i] - 10;
c[i+1] = 1;
}
}
if(c[i] == 1)
c[i] = '1';
} else {
for(;i < strlen(b);i++)
c[i] = b[i];
}
}
swap(c);
printf("%s\n",c);
}
void BigNumChange(char *str1, char *str2) {
int len1 = strlen(str1);
int len2 = strlen(str2);
int i;
int *num1 = (int*)malloc(len1*sizeof(int));
int *num2 = (int*)malloc(len1*sizeof(int));
if(str1 == NULL || str2 == NULL)
return;
for (i = 0; i < len1; i++)
{
num1[i] = num2[i] = 0;
}
for (i = len1 - 1; i >= 0; i--)
{
num1[len1 - 1 - i] = str1[i] - '0';
}
for (i = len2 - 1; i >= 0; i--)
{
num2[len2-1-i] = str2[i] - '0';
}
for (i = 0; i < len1; i++)
{
num1[i] = num1[i] - num2[i];
if(num1[i] < 0)
{
num1[i] = num1[i] + 10;
num1[i+1] = num1[i+1] - 1;
}
}
for (i = len1-1; i>=0 && num1[i] == 0; i--)
;
if(i >= 0)
for (; i >= 0; i--)
{
printf("%d",num1[i]);
}
else
printf("0");
}
int main(void) {
int n;
char a[100][100];
int i;
int len1;
int len2;
scanf("%d",&n);
for(i = 0;i < 2*n;i++) {
scanf("%s",a[i]);
}
for(i = 0;i < 2*n;i += 2) {
BigNumAdd(a[i],a[i+1]);
}
for(i = 0;i < 2*n;i++) {
swap(a[i]);
}
for(i = 0;i < 2*n;i += 2) {
len1 = strlen(a[i]);
len2 = strlen(a[i+1]);
if(len1 > len2) {
BigNumChange(a[i],a[i+1]);
} else if(len1 < len2) {
printf("-");
BigNumChange(a[i+1],a[i]);
} else {
if(strcmp(a[i],a[i+1]) >= 0) {
BigNumChange(a[i],a[i+1]);
} else {
printf("-");
BigNumChange(a[i+1],a[i]);
}
}
printf("\n");
}
return 0;
}