1.简单模拟
模拟题是一种“题目怎么说,你就怎么做”的题目,如果实现起来不太麻烦,就可以称之为“简单模拟”。
这种题目几乎不涉及算法,完全是按照题目描写写代码。
1著名的3n+1猜想
思想:
1.若n不为1进行循环,否则输出步数;
2.n为偶数,则n=n/2;奇数n=(3*n-1)/2;步数加1;
c语言的代码如下
#include<stdio.h>
int main()
{
int n;
int j=0;
scanf("%d",&n);
while(n!=1)
{
if(n%2==0)
{
n=n/2;
}
else
{
n=(3*n+1)/2;
}
j=j+1;
}
printf("%d",j);
return 0;
}
2.挖掘机技术哪家强
代码:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int a[100000]={0},b=0;
int c,m;
int max=0;
for(int i=0;i<n;i++)
{
scanf("%d%d",&c,&m);
a[c]=a[c]+m;
}
for(int i=0;i<=n;i++)
{
if(max<a[i])
{
max=a[i];
b=i;
}
}
printf("%d %d",b,max);
return 0;
}
2.查找元素
查找某个满足条件的元素,也是考察的代码的基本功,一般来说,如果范围较小,则需要在一个小范围内遍历,如果范围较大,则利用二分查找。
1.找x
输入一个数n(1<=n<=200),然后输入n个数值各不相同的数字,再输入一个x,输出这个值在这个数组的下标(从0开始,若不在则输出-1)
#include<stdio.h>
int main()
{
int n,m,x;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++)
{
scanf("%d",&m);
a[i]=m;
}
scanf("%d",&x);
for(int i=0;i<n;i++)
{
if(x==a[i])
{
printf("%d",i);
break;
}
if(i==n-1)
{
printf("-1");
}
}
return 0;
}
3.图形输出
有些题目会要求考生根据给定的规则画图,所谓图形,其实是若干字符组成的,因此只需要弄清楚规律就可以编写代码。
这种题目的做法一般有两种:
1.通过规律,直接输出。
2.定义二维字符数组,找到规律进行填充。
1.跟奥巴马一起编程
#include<stdio.h>
int main()
{
int n,m,x;
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++)
{
scanf("%d",&m);
a[i]=m;
}
scanf("%d",&x);
for(int i=0;i<n;i++)
{
if(x==a[i])
{
printf("%d",i);
break;
}
if(i==n-1)
{
printf("-1");
}
}
return 0;
}