在知乎上看到一个有意思的问题,看着比较有感觉,所以记录一下!
题目如上
答主A的回答,应该是一个用EXCEL吃饭的老手:
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:王春然
链接:http://www.zhihu.com/question/27229082/answer/35751870
来源:知乎
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:王春然
链接: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
来源:知乎
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:李冰
链接: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)+"遍"+" 对不起");
}
}
}
完全符合要求,纯中文数字。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)+"遍"+" 对不起");
}
}
}