金铲铲,启动!
思路:
注意题目说:大于50都是5,所以第一步判断,a,b里最小的大于50,一定是10
第二步,可以交换金币,但最多交换5枚,所以我们直接把大的个位数小于等于5的给小的,再进行比较
点击查看代码
int a,b;
scanf("%d %d",&a,&b);
int x = min(a,b);//比较大小,不会的去csdn看这个函数
if(x > 50)
printf("10\n");
else
{
int y = max(a,b);
x += y%10;
y = y/10;
y = min(y,5);
printf("%d\n",x / 10 + y )
}
ps:说实话,这个题数据水了,例如49,69这个数据,
买西瓜
思路:他要分成两半且是偶数,我们知道,奇+奇=偶,奇+偶=奇,偶+偶=偶,
所以他一定要是偶数被分成两个偶数
点击查看代码
int n;
scanf("%d",%n);
if(n<=2)
{
print("NO\n");
return 0;
}
n -= 2;
if(n%2)
print("NO\n");
else
print("YES\n");
近似素数
思路:暴力美学
点击查看代码
#include<iostream>
using namespace std;
bool prime(int n)
{
for(int i=2;i<=n/i;i++)
{
if(n%i==0)
return false;
}
return true;
}
int cnt,ans;
int main()
{
int n;
scanf("%d",&n);
for(int i=2;i<=n;i++)
{
for(int j = 2;j<i;j++)
{
if(prime(j)&&i%j==0)
cnt++;
}
if(cnt==2)
ans++;
cnt=0;
}
printf("%d\n",ans);
return 0;
}
智商检测题
思路:
题目就是让你找到奇数只有一个或偶数只有一个然后输出他的位置
QAQ建议学一下数组,不用数组这样写好麻烦
点击查看代码
#include<iostream>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int odd = 0,even = 0,indxodd = 0,indxeven = 0;
for(int i = 1;i <= n;i ++)
{
int x;
scanf("%d",&x;
if(x%2==0)
{
even++;
indxeven = i;
}
else
{
odd++;
indxodd = i;
}
}
if(odd > even)
printf("%d\n",indxeven);
else
printf("%d\n",indxodd);
}
国旗
思路:每行只能有一种颜色相邻两行颜色不能相同。按照这种标准判断,
点击查看代码
#include "stdio.h"
int main()
{
int n, m;
char c, d;
//变量c, d用来记录每行第一个网格的颜色,c所在的行数比d大。
int f = 1;
//用来判断国旗是否符合标准,f=1说明符合,f=0说明不符合。初始默认符合标准。
scanf("%d %d", &n, &m);
//输入n,m的值
getchar();
//读入字符的函数,在这里用来读入“回车”(n,m输入后会输入回车,这个回车会影响后续数据的读入, 所以要先读入)。
for(int i = 0;i < n;i ++)//判断开始。
{
c = getchar();
//读入每行第一个网格的颜色,这里之所以用字符变量是因为数据输入的时候没有空格。
//举个例子,如果用整型的话会把“111”当成一个数字读入,不能当成3个1。用字符变量的话每个1都会读入一次。有利于我们进行判断。
for(int j = 1;j < m;j ++)//每行第2个输入到最后一个。
{
char x;
x = getchar();//读入颜色。
if(x != c)//如果和第一个颜色不相同就说明不标准。
{
f = 0;
break;//直接停止判断,因为已经不标准了,接下来没必要判断了。
}
}
if(i != 0 && c == d)//特殊判断第一行,因为第一行没有上一行。c=d说明当前行的颜色与上一行相同。不符合标准。
{
f = 0;
break;//直接跳出,同理。
}
d = c;//将本行第一个颜色的元素存下来,下一行可以用来判断两行颜色是否相同。
if(f == 0)//不标准直接跳出。
{
break;
}
getchar();//用来读入每行最后一个回车,作用前面已经说过了,类似。
}
//判断结束
if(f == 1)//国旗标准输出YES,不标准输出NO。
{
printf("YES");
}
else
{
printf("NO");
}
return 0;
}
优雅序列
点击查看代码
int n, d;
scanf("%d %d",&n,&d);
for (int i = 0; i < n; i ++ ) {
scanf("%d",&a[i]);
}
ll ans = 0;
for (int i = 1; i < n; i ++ ) {
if (a[i] <= a[i - 1]) {
int t = abs(a[i] - a[i - 1]) / d + 1;
ans += t;
a[i] += t * d;
}
}
printf("%d\n",ans);
简单输出
思路:坑点比较多,首先「 这是直角引号,然后\这个要输出需要转义字符
点击查看代码
cout << "abc%defghijklm\\n" << '\n';
掷骰子
思路:
这个建议去csdn看看学一学最小公倍数怎么写,当然这题也可以直接把情况都列出来
点击查看代码
int a, b;
cin >> a >> b;
int t = 6 - max(a, b) + 1;
cout << t / __gcd(t, 6) << "/" << 6 / __gcd(t, 6) << '\n';
翻译问题
思路:这题需要用到字符串的知识,把两个一个从前往后,一共从后往前遍历
看看是不是相等
点击查看代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
char s[1000],ss[1000];
cin >> s >> ss;
int cnt = 0;
while(s[cnt]!='\0')
{
cnt++;
}
for(int i = 0;i < cnt;i ++)
{
if(s[i] != ss[cnt-i-1])
{
cout << "NO" << '\n';
return 0;
}
}
cout << "YES" << '\n';
}
Hello World
点击查看代码
int main()
{
int n;
scanf("%d",&n);
for(int i = 1;i <= n;i ++)
{
printf("Hello");
}
printf(" World\n");
}
升级咯
点击查看代码
int d[1000];
int main()
{
int n, a, b;
scanf("%d",&n);
for (int i = 0; i < n - 1; i ++ ) {
cin >> d[i];
}
scanf("%d %d",&a,&b);
int ans = 0;
for (int i = a - 1; i < b - 1; i ++ ) {
ans += d[i];
}
printf("%d\n",ans);
return 0;
}
总结:想要ak还是要往后学一点的
标签:int,scanf,第一次,++,点击,考核,读入,printf From: https://www.cnblogs.com/ljmxmu/p/17711568.html