}
4.从键盘上输入一个正整数,判别它是否为回文数。
所谓回文数是指正读和反读都一样的数。
例如,123321是回文数。
【解答】
#include
usingnamespacestd;
intmain()
{intb[10],i,j,k,flag;
longnum,n;
cout<<"num=";cin>>num;
k=0;
n=num;
do//拆分整数,把各数字放入数组b
{b[k++]=n%10;
n=n/10;
}while(n!
=0);
flag=1;//判断标志
i=0;j=k-1;//设置指示下标的指针
while(iif(b[i++]!
=b[j--])//对称位置元素不相等
{flag=0;
break;
}
if(flag)cout<"<elsecout<"<}
5.把两个升序排列的整型数组合并为一个升序数组。
设计好你的算法,以得到较高的运行效率。
【解答】
#include
usingnamespacestd;
voidmerge(constinta[],intna,constintb[],intnb,intc[],intnc);
intmain()
{inta[4]={1,2,5,7};
intb[8]={3,4,8,8,9,10,11,12};
intc[12];
inti;
merge(a,4,b,8,c,12);
for(i=0;i<12;i++)
cout<cout<}
voidmerge(constinta[],intna,constintb[],intnb,intc[],intnc)
{inti,j,k;
i=j=k=0;
while(iif(a[i]>b[j])//当a[i]>b[j],把b[i]写入数组c
{c[k]=b[j];k++;j++;}
else//当a[i]<=b[j],把a[i]写入数组c
{c[k]=a[i];k++;i++;}
while(i{c[k]=a[i];i++;k++;}//把数组a的剩余元素写入数组c
while(j{c[k]=b[