A - Power
题意:
求A^B(1<=A,B<=9)
直接使用一个for循环就行了,如果要使用pow函数需要对最后的pow(a,b)强制类型转换int,因为pow返回的是浮点数,会wa的
第一种:
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int a, b;
int ans = 1;
int main()
{
cin >> a >> b;
for(int i = 1; i <= b; i ++)
{
ans *= a;
}
cout << ans;
return 0;
}
第二种:
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int a, b;
int main()
{
cin >> a >> b;
cout << (int)pow(a, b) << endl;
return 0;
}
B - First Query Problem
题意:
给定一个数组a和 q个操作
- 1 k x ,a[k] = x
- 2 k ,输出a[k]
#include <iostream>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
typedef long long LL;
const int N = 100010;
int n, q, k, op;
LL a[N], x;
int main()
{
cin >> n;
for(int i = 1; i <= n; i ++)
{
cin >> a[i];
}
cin >> q;
while (q --)
{
cin >> op;
if(op == 1)
{
cin >> k >> x;
swap(a[k], x);
}
if(op == 2)
{
cin >> k;
cout << a[k] << endl;
}
}
return 0;
}
C - Cash Register
题意:
有一个收银机,有11个键。00,0,1,2,3,4,5,6,7,8和9。收银机最初显示0。每当他输入00键时,显示的数字就会乘以100;每当他输入其他键时,显示的数字就会乘以10,然后再加上键上的数字。高桥想让收银机显示一个整数S,至少需要多少次按键才能使它显示S?
思路:
统计a[i]和a[i + 1]是否同时为0,如果是的话 i++,不用i = i + 2,因为for循环里面有一次i ++。
#include <iostream>
#include <algorithm>
using namespace std;
typedef long long LL;
string s;
LL ans;
int main()
{
cin >> s;
ans = s.size();
for(int i = 0; i < s.size(); i ++)
{
if(s[i] == '0' && s[i + 1] == '0')
{
ans --;
i ++;
}
}
cout << ans << endl;
return 0;
}