第1题 找平方数
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n;
cin >> n;
int a[n];
for(int i = 0; i < n; i++)
{
cin >> a[i];
int root = sqrt(a[i]);
if(root * root == a[i])
{
cout << a[i] << endl;
}
}
return 0;
}
第2题 回文密码
#include <iostream>
using namespace std;
bool isPalin(string s)
{
int len = s.size();
int i = 0;
int j = len - 1;
while(i < j)
{
if(s[i] != s[j])
{
return false;
}
i++;
j--;
}
return true;
}
int main()
{
string s;
cin >> s;
int len = s.size();
int i = 0;
if(isPalin(s))
{
i = 1;
}
while(i < len)
{
cout << s[i];
i += 2;
}
cout << endl;
return 0;
}
第3题 采购奖品
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct goods
{
int cost;
int amount;
};
bool cmp(goods a,goods b)
{
return a.cost<b.cost;
}
int main()
{
freopen("prize.in","r",stdin);
freopen("prize.out","w",stdout);
int money, n;
cin >> money >> n;
goods g[n];
int i = 0;
for(; i < n; i++)
{
cin >> g[i].cost >> g[i].amount;
}
sort(g, g + n, cmp);
int ans = 0;
int cnt = 0;
i = 0;
while(money >= g[i].cost) // 若剩余的钱连一个都不买不了,则循环结束
{
int tmpCnt = money / g[i].cost; // 不考虑商品数量限制,理论上最多可买的数量
cnt = min(tmpCnt, g[i].amount);
money -= (cnt*g[i].cost);
ans += cnt;
i++;
}
cout << ans << endl;
return 0;
}