321
社区成员




以字符串的形式给你一个长度为 M 的整数 N,请你计算出对这个数进行一次操作后模 9 的值为 1 的所有可能的不同操作方式。 在一次操作中, 我们可以选择 N 的一个数位 N[i],并把它替换成另一个不同的 0 到 9 范围之内的数 B,两种操作方式不同当且仅当它们选择的 i 或 B 不同。
周赛出现过两次,第一次 AC 了,代码混乱,都不知道怎么 AC 的,第二次则直接零分,看了看报告,嗯,当期49期的周赛,整个零分,提交的代码没有反馈。
其实 AC 很容易,规则很简单。。。
m,n = input(),input()
v = int(n) % 9
print(sum([2 if int(i) == v - 1 else 1 for i in n]))
using System;
class Program {
public static void Main() {
string m = Console.ReadLine();
string n = Console.ReadLine();
int mod = 0;
int ans = 0;
for (int i = 0 ; i < n.Length ; i ++){
mod = (mod + int.Parse(n.Substring(i,1))) % 9;
}
for (int i = 0 ; i < n.Length ; i ++){
ans += mod - 1 == int.Parse(n.Substring(i,1)) ? 2 : 1;
}
Console.WriteLine(ans.ToString());
}
}
因为其他语言环境无法支持大整数,尤其第一个用例。。。。几万的长度,连异常都抛不出来。。。所以,只能自己循环加,然后求余了
m = readline();
n = readline();
m = 0
a = 0
Array.from(n.match(/\d/gi)).forEach(function(x){m = (m + parseInt(x)) % 9})
Array.from(n.match(/\d/gi)).forEach(function(x){a += parseInt(x) == m - 1 ? 2 : 1})
print(a)