using static System.Console;
using static System.Convert;
public class Program {
public static void Main() {
WriteLine(GenerateKey("10000"));
WriteLine(GenerateKey("10011"));
WriteLine(GenerateKey("10100"));
WriteLine(GenerateKey("00000"));
WriteLine(GenerateKey("999999999"));
}
public static int GenerateKey(string s) {
s = s.Remove(s.Length - 1);
var i = ToInt32(s);
var sum = 0;
while (i != 0) {
sum += i % 10;
i /= 10;
}
var somatorio = ToInt32(s) + 1;
var id = somatorio.ToString();
if (sum.ToString().Length > 1) sum %= 10;
id += sum;
return ToInt32(id);
}
}
//https://pt.stackoverflow.com/q/92839/101
dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwp1c2luZyBzdGF0aWMgU3lzdGVtLkNvbnZlcnQ7CgkJCQkJCnB1YmxpYyBjbGFzcyBQcm9ncmFtIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkgewoJCVdyaXRlTGluZShHZW5lcmF0ZUtleSgiMTAwMDAiKSk7CgkJV3JpdGVMaW5lKEdlbmVyYXRlS2V5KCIxMDAxMSIpKTsKCQlXcml0ZUxpbmUoR2VuZXJhdGVLZXkoIjEwMTAwIikpOwoJCVdyaXRlTGluZShHZW5lcmF0ZUtleSgiMDAwMDAiKSk7CgkJV3JpdGVMaW5lKEdlbmVyYXRlS2V5KCI5OTk5OTk5OTkiKSk7Cgl9CglwdWJsaWMgc3RhdGljIGludCBHZW5lcmF0ZUtleShzdHJpbmcgcykgeyAgICAgICAgICAgCgkJcyA9IHMuUmVtb3ZlKHMuTGVuZ3RoIC0gMSk7CgkJdmFyIGkgPSBUb0ludDMyKHMpOwoJCXZhciBzdW0gPSAwOwoJCXdoaWxlIChpICE9IDApIHsKCQkJc3VtICs9IGkgJSAxMDsKCQkJaSAvPSAxMDsKCQl9CgkJdmFyIHNvbWF0b3JpbyA9IFRvSW50MzIocykgKyAxOwoJCXZhciBpZCA9IHNvbWF0b3Jpby5Ub1N0cmluZygpOwoJCWlmIChzdW0uVG9TdHJpbmcoKS5MZW5ndGggPiAxKSBzdW0gJT0gMTA7CgkJaWQgKz0gc3VtOwoJCXJldHVybiBUb0ludDMyKGlkKTsKCX0KfQoKLy9odHRwczovL3B0LnN0YWNrb3ZlcmZsb3cuY29tL3EvOTI4MzkvMTAx