关于男友让我打十万个「对不起」,汉字标上多少遍。如何快速实现

在知乎上看到一个有意思的问题,看着比较有感觉,所以记录一下!

题目如上

答主A的回答,应该是一个用EXCEL吃饭的老手:

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:王春然
链接:http://www.zhihu.com/question/27229082/answer/35751870
来源:知乎

打开Excel,在A1输入1,再选中A列,点填充->系列,选序列产生在列,等差数列,步长值1,终止值10000,确定。

然后在选中列的单元格上右键,设置单元格格式->数字->特殊->中文小写数字(区域设成中国)。

再在旁边列填充一万个对不起,根据需求微调格式,复制到需要的地方done


公司电脑,Office2007,其他版本可能有些不同


题目是十万啊,07的行数限制是65536,分两列就行了



答主B的回答:

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:李冰
链接:http://www.zhihu.com/question/27229082/answer/35756326
来源:知乎


我劝你分了算了,不过为了表达对你的同情,我领附上程序代码。
完全符合要求,纯中文数字。Java的程序,本来想给你个python的程序结果发现python处理中文有点复杂。你要是不会跑code,我也没办法了。


public class Sorry {

public static String chineseNum(int n){
String[] num = {"零","一","二","三","四","五","六","七","八","九"};
String[] digit = {"十","百","千","万","十万"};

int length = String.valueOf(n).length();
String[] results = new String[length];

for(int i = 0;i < length;i++){
int t = n % 10;
n = n / 10;
results[i] = "";
results[i] += num[t];

if(t != 0 && i > 0){
if(t == 1 && i == length - 1 && (i == 1 || i == 5)){
results[i] = ""+digit[i-1];
}else{
results[i] += digit[i-1];
}
}
}

String result = "";

boolean empty = false;
for(int i = length - 1;i >= 0;i--){
if(results[i].equals("零")){
empty = true;
}
else{
if(empty){
result += "零";
empty = false;
}
result += results[i];

}
}

return result;
}

public static void main(String[] args) {
for(int i = 1;i <= 100000; i++){
System.out.println("第"+chineseNum(i)+"遍"+" 对不起");
}

}

}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值