C,C ++,Java,C#,D:36个字节
D:35个字节
C:28个字节
第一次我有那么短的答案!
int r(int i){return i/100*60+i%100;}
由于golfy模板系统,D可以进行特殊的优化:
T r(T)(T i){return i/100*60+i%100;}
C具有隐式int的特殊优化:
r(i){return i/100*60+i%100;}
测试代码
在C中(必须包含stdio.h
):
int main() {
int testArr[] = {1,11,111,1111,9,99,999,9999};
for(int i=0;i<8; ++i) {
printf("%d = %d\n",testArr[i],r(testArr[i]));
}
return 0;
}
TIO链接
在C ++中(必须包含iostream
):
int main() {
std::initializer_list<int> testList{
1,11,111,1111,9,99,999,9999
};
for (auto x : testList) {
std::cout << r(x) << '\n';
}
}
在线尝试!
在Java中:
public class MainApp {
int r(int i){return i/100*60+i%100;}
public static void main(String[]a) {
MainApp m = new MainApp();
int testArr[] = new int[]{
1,11,111,1111,9,99,999,9999
};
for (int v : testArr) {
System.out.println(v + " = " + m.r(v));
}
}
}
在线尝试!
在C#中
class Program {
int r(int i){return i/100*60+i%100;}
static void Main(string[] args) {
var p = new Program();
int[] testArr = new int[8]
{
1,11,111,1111,9,99,999,9999
};
foreach(int a in testArr) {
Console.WriteLine(a + " = " + p.r(a));
}
}
}
在D中(必须要导入std.stdio
)(确切地说,我不知道如何在D中使用数组):
void main() {
int[] arr = [1,11,111,1111,9,9,999,9999];
for(int i = 0; i < arr.length; i++)
writeln(arr[i]," = ",r(arr[i]));
}
TIO链接