前言
这些题目已经很简单了,你们主要的问题还是在语法上没有掌握该怎么去写。
第一题
不就是个简单的a+b吗,没什么要讲的吧,把这个格式记住了。
#include <cstdio>
int a,b;
int main()
{
scanf("%d%d",&a,&b);//输入/给变量赋值
//给变量赋值的时候除了字符串变量,其余类型的都要在变量名前加取址符&
printf("%d",a+b);//输出
return 0;
}
注意了:以后写头文件给我用cstdio,我们用c++的文件头去写c语言会方便很多,以后你就知道了。还有变量除了循环使用的变量都被我放到main函数上面去申请。 cstdlib和windows.h用不到,这些最简单的题目用一个cstdio就行了。
第二题
这思路很简单啊,如果答案不就是a.b(元)/1.9(元/个)吗,要是涉及到小数点的话有点麻烦我们直接将两边同时乘10换算成角来计算即可。
tips:int代表整型,不管是几除以几结果都是只保留整数—> 5/3=1
#include <cstdio>
int a,b,c,ans;
int main()
{
scanf("%d%d",&a,&b);
c = 10*a+b;
ans = c/19;
printf("%d",ans);
return 0;
}
第三题
这里涉及到了数组的运用,我之前也是讲过的。
思路:用一个数组将10个苹果的高度记录下来,再于最大高度进行比较,符合条件就将ans + 1即可。
#include <cstdio>
int a[11];//第一个是a[0],第十一个是a[10];
int t;
int ans = 0;//其实全局变量初始化就是0,局部变量不是。
int main()
{
int i;//用于循环变量放在函数里面
for(i=1;i<=10;i++)scanf("%d",&a[i]);
scanf("%d",&t);
/*比较清楚的写法*/
for(i=1;i<=10;i++)
if(a[i] <= t+30)
ans++;
/*一行流,像这种只有一个语句的我一般直接一行解决*/
for(i=1;i<=10;i++)if(a[i] <= t+30)ans++;
printf("%d",ans);
return 0;
}
第四题
模拟一下就行了
#include <cstdio>
int n,k;
int ans;
int main()
{
int i;
scanf("%d%d",&n,&k);
ans=n;//他本来就有n支烟
int num=n;//代表换完一轮烟后还剩下的烟蒂数
int t;
while((num/k)>0)//只要还能凑出一个新烟蒂的话
{
ans+=(num/k);//换来的烟
t=(num/k)+(num%k);//换来的烟抽完后的烟蒂+由于不够换一支烟而剩下的烟蒂
num=t;
}
printf("%d",ans);
return 0;
}
第五题
还是模拟啊
我们现在之上画一下:以样例为例子乘号用x表示
第零轮:1 = 1
第一轮:1+1x10 = 11
第二轮:(1+1x10)+(1+1x10)x10 =11+11x10 = 11x11 =121
第三轮:121+121x10 = 121x11 11^3
设每个禽兽会传染n个禽兽:
第零轮:1
第一轮:1+1xn = 1+n
第二轮:(1+n)+(1+n)xn = (n+1)^2
设(n+1)^2 = N
第三轮:N + Nxn = Nx(n+1)
也就是(n+1)^3
还有什么问题吗?
这题我只用python写过现在现场手写好吧:
#include <cstdio>
int x,n;
long long int ans=1;
int main()
{
scanf("%d%d",&x,&n);
int i;
for(i=1;i<=n;i++)ans *= (x+1);
printf("%d",ans);
return 0;
}
这里倒是有个注意事项:
int型变量能表达的数字的范围在-2147483648-2147483647[-2^31- 2^31-1],而题目有多个测试点的值已经超过的int所能表达的范围,所以我们的ans需要开long long int 。
为什么是这样呢?我以后会讲,有兴趣的可以先自行查查。