原题链接:Sign in
对于一个二进制字符串问其是否能被5整除,注意在每次转化成10进制时对5取余以免数太大。
#include <bits/stdc++.h>
using namespace std;
int main() {
char s[100010];
int k, ans, cnt;
while(~scanf("%d", &k)) {
scanf("%s", s);
ans = 0;
cnt = 1;
for(int i = k-1; i >= 0; i--) {
if(s[i] - '0')
ans += cnt;
cnt = (cnt*2)%5;
}
if(!(ans % 5))
puts("Yes!");
else
puts("No!");
}
}
原题链接Enchanted
英语菜比的噩梦,读了一个多小时题目,没读懂啥意思,
对于每组数据,找出最大公约数用第一个数除一下。。。
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n, t;
ll ans, tem, gg;
ll gcd(ll x, ll y) {
return y==0?x:gcd(y, x%y);
}
int main() {
scanf("%d", &t);
while(t--) {
scanf("%d%lld", &n, &ans);
gg = ans;
for(int i = 1; i < n; i++) {
scanf("%lld", &tem);
gg = gcd(gg, tem);
}
printf("%lld\n", ans/gg);
}
}