高以翔最新专访视频:几个编程问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/05 07:21:17
(1)密码问题:::有一行电文,已经按照下面规律译成密码

A-Z a-z

B-Y b-y

C-X c-x

.....
(2)
小孩分糖果:::

十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩(例如第一个小孩分给第二个小孩,以此类推);糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖的块数一样多?每人各有多少块糖?

输入

<回车>

输出

After <m> times, every child has <n> candys.<回车>

(3)谁是偷盗者::
A、B、C、D4个人为嫌疑犯,只有一个人是偷盗者。在审讯中,每个人要么全说真话,要么全说假话。

A:B没偷、D偷的

B:我没偷,C偷的

C:A没偷,B偷的

D:我没偷

输入

(无)

输出
The thief is <偷盗者ID>.<回车>

(4)拦截导弹::

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

输入
第一行为导弹的个数

第二行为使用逗号分隔的导弹依次飞来的高度(雷达给出的高度数据是不大于30000 的正整数)

输出
这套系统最多能拦截多少导弹

最好能够给详细的程序,。。。。。

谁是偷盗者:

#include<sio.h>
void main()
{
int i,j,a[4];
for(i=0;i<4;i ) /*假定只有第i个人为窃贱*/
{
for(j=0;j<4;j ) /*将第i个人设置为1表示窃贱,其余为0*/
if(j==i)a[j]=1;
else a[j]=0;
if(a[3] a[1]==1&&a[1] a[2]==1&&a[0] a[1]==1) /*判断条件是否成立*/
{
printf("The thief is "); /*成立*/
for(j=0;j<=3;j ) /*输出计算结果*/
if(a[j])printf("%c.",j 'A');
printf("\n");
}
}
}
*运行结果
The thief is B. (乙为窃贱。)

考数学的算法问题哦

晕~你直接在网络教室问不就完了~我才写了一个:
1。
main()
{char a[30];int i;
gets(a);
for(i=0;a[i]!='\0';i++)
{if(a[i]>='a'&&a[i]<='z') a[i]=219-a[i];
if(a[i]>='A'&&a[i]<='Z') a[i]=155-a[i];}
puts(a);

}

(4)动态规划问题
#include<stdio.h>
#include<mem.h>
define max 1000;
int main()
{
int a[max],f[max];//there max=the maxn;
scanf("%d",&n);//数组a是导弹的高度,数组f是最优值

for (int i=0;i<n;i++)
scanf("%d,",&a[i]);
memset(f,1,sizeof(f));
max=1;
for (int i=0;i<n;i++)
for (int j=i+1;j<n;j++)
if (a[j]<=a[i])
if (f[i]+1>f[j])//状态转移方程
{
f[j]=f[i]+1;
if (f[j]>max) max=f[j];//记录最大值
}
printf("%d\n",max);
}

(2)
#include <iostream.h>

int main()
{
int dat[10]={10,2,8,22,16,4,10,6,14,20};
int tmp,temp;
int i,num=1;
while(1)
{
tmp=dat[9];
temp=dat[0];
for(i=0;i<=9;i++)
{
dat[i]=tmp/2;
dat[i]+=(temp-temp/2);
tmp=temp;
temp=dat[i+1];
}
for(i=0;i<=9;i++)
if(dat[i]%2==1)
dat[i]++;
for(i=0;i<9;i++)
if(dat[i]!=dat[i+1])
break;
if(i==9)
{
cout<<"After"<<num<<"times, every child has"<<dat[0]<<"candys.";
return 1;
}
num++;
}
}

结果为:
共循环次数为:16
糖果数为:18