经过激烈的竞争,研究生的生活终于要到来了!希望自己可以在新的阶段继续努力!希望可以在这里将考试中遇到的问题记下来,供大家参考,也希望对大家有所帮助!
第二题:
1,问题描述
随便给一个不大于1000的数A,列出所有的可能,两个素数B、C相加A;(例如:10=3+7;10=5+5;)
2,问题思路
要理解素数的概念,知道素数的判断方式。然后去遍历就好
3,参考代码:见Example2
第三题:
1,问题描述
给出一个数n,则形成一个一条龙式的n*n矩阵;
(例如:n = 3,则res为下图所示)
1 2 3
6 5 4
7 8 9
2,问题思路
此类问题就是找规律然后去写代码就好,不用最优解,思想越简单越好
3,参考代码:见Example3
第四题:
1,问题描述
(最长子序列)给出一个字符串,得到其最长子序列,并且输出其起始坐标和终止坐标。
2,问题思路
属于动态规划类题目
3,参考代码:暂无
-------------------------END------------------------------
Example 2 素数问题
#include "stdio.h"
int judgeNum(int num){
int i = 2;
while( num > i){
if( num % i == 0){
break;
}
i++;
}
if(i == num){
return 1;
}else{
return 0;
}
}
//主函数
int main(){
int a,i,temA,temB;
while(1){
printf("请输入一个整数:");
scanf("%d",&a);
printf("您输入的数字为:%d\n",a);
if(a < 2)
printf("小于2,请重新输入。\n");
else{
for(i = 2; i <= a/2; i++){
temA = judgeNum(i);
temB = judgeNum(a-i);
if(temA == 1 && temB == 1){
printf("%d + %d = %d\n", i, a-i, a);
}
}
}
}
}
Example 3 矩阵问题
#include
int main()
{
int num,row,line;
printf("请输入一个正整数。\n");
scanf("%d",&num);
for(row = 0; row < num; row++){
if(row % 2 == 0){
for(line = 1; line <= num; line++){
printf("%d ",row*num + line);
}
}else{
for(line = num; line > 0; line--){
printf("%d ",row*num + line);
}
}
printf("\n");
}
}