DataGridView绑定数据源
2020-12-13 01:35
标签:basic-20 数的读法 算法 蓝桥杯 java 1、把 str 从右到左拆分成 4 位一组,就是 “ 12 亿 3456 万 7009 ” 这样的形式。“ 几千几百几十几 ” 这样4位一组的形式比较好读,读完加上单位 “亿” “万” 即可,考虑到一般情况,最左边的一组可能不足 4 位,不足 4 位的需要单独处理 2、由于这道题需要判断的地方太多了,详细解题思路我就不细说了,大家可以自己多举几个例子,然后参考下面的程序慢慢梳理思路 (一点儿小牢骚):针对这道题,我发现蓝桥杯的测评数据不够全面,我刚开始写了一个考虑不够全面的算法程序提交上去都是 100 分,对此我很是无语。而且,通过近段时间做的这么些题,我发现蓝桥杯对输出数据的显示格式要求也不是很严格,特别是在行末空白字符的处理上,多一个少一个似乎都没有多大关系。综合这些,我只能说蓝桥杯跟ACM相比,还是有差距的啊! DataGridView绑定数据源,搜素材,soscw.com DataGridView绑定数据源 标签:basic-20 数的读法 算法 蓝桥杯 java 原文地址:http://blog.csdn.net/u010066934/article/details/26364689
比如说,在对学生讲解第1234567009号位置上的碱基时,光看着数字是很难准确的念出来的。
所以,他迫切地需要一个系统,然后当他输入12 3456 7009时,会给出相应的念法:
十二亿三千四百五十六万七千零九
用汉语拼音表示为
shi er yi san qian si bai wu shi liu wan qi qian ling jiu
这样他只需要照着念就可以了。
你的任务是帮他设计这样一个系统:给定一个阿拉伯数字串,你帮他按照中文读写的规范转为汉语拼音字串,相邻的两个音节用一个空格符格开。
注意必须严格按照规范,比如说“10010”读作“yi wan ling yi shi”而不是“yi wan ling shi”,“100000”读作“shi wan”而不是“yi shi wan”,“2000”读作“er qian”而不是“liang qian”。import java.util.Scanner;
public class Main {
static String[] unit = { "", "", "wan ", "yi " };
static String[] digit = { "", "", "shi ", "bai ", "qian " };
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
String str = scanner.nextLine();
char[] chs = str.toCharArray();
int len = chs.length;
int index = 0;// 记录chs数组的下标
int group = (len - 1) / 4 + 1;// 4位一组
int rest = len % 4;// 最左边的可能不足四位,需要单独处理
String spell;
StringBuffer result = new StringBuffer();
if (rest != 0) {
if (rest == 2) {
if (chs[index] == '1') {
result.append("shi ");
} else {
spell = getSpelling(chs[index]);
result.append(spell + "shi ");
}
index++;
if (chs[index] != '0') {
result.append(getSpelling(chs[index]));
}
index++;
} else {
boolean flag = true;
for (int i = rest; i > 0; i--) {
char ch = chs[index++];
if (ch != '0') {
spell = getSpelling(ch);
if (flag) {
result.append(spell + digit[i]);
} else {
result.append("ling " + spell + digit[i]);
}
} else {
flag = false;
}
}
}
result.append(unit[group--]);
}
for (int i = group; i > 0; i--) {
boolean flag = true;
for (int j = 4; j > 0; j--) {
char ch = chs[index++];
if (ch != '0') {
spell = getSpelling(ch);
if (flag) {
result.append(spell + digit[j]);
} else {
result.append("ling " + spell + digit[j]);
flag = true;
}
} else {
flag = false;
}
}
result.append(unit[group--]);
}
result.deleteCharAt(result.length() - 1);
System.out.println(result);
}
}
private static String getSpelling(char c) {
String spell = null;
switch (c) {
case '0':
spell = "ling ";
break;
case '1':
spell = "yi ";
break;
case '2':
spell = "er ";
break;
case '3':
spell = "san ";
break;
case '4':
spell = "si ";
break;
case '5':
spell = "wu ";
break;
case '6':
spell = "liu ";
break;
case '7':
spell = "qi ";
break;
case '8':
spell = "ba ";
break;
case '9':
spell = "jiu ";
break;
}
return spell;
}
}