⑴ java程序 输入一串数字如12341289.23,输出万千百十元角分。高手帮忙!谢谢
//将人民币金额转换为大写
function upDigit(n){
var fraction = ["角","分"];
var digit = ["零","壹","贰","叁","肆","伍","陆","柒","捌","玖"];
var unit = [["元","万","亿"],["","拾","佰","仟"]];
var head = n<0?"负":"";
n = Math.abs(n);
var s = "";
for(var i=0; i<fraction.length; i++){
s += (digit[Math.floor(n*10*Math.pow(10,i))%10]+fraction[i]).replace(/零./,"");
}
s = s||"整";
n = Math.floor(n);
for(var i=0; i<unit[0].length && n>0; i++){
var p = "";
for(var j=0; j<unit[1].length && n>0; j++){
p = digit[n%10] + unit[1][j]+p;
n = Math.floor(n/10);
}
s = p.replace(/(零.)*零$/,"").replace(/^$/,"零") + unit[0][i] + s;
}
return head + s.replace(/(零.)*零元/,"元").replace(/(零.)+/g,"零").replace(/(^整$)/,"零元整");
}
⑵ java循环例题:100元找零钱,零钱1,2,5元,问共有多少种分法。
在Java中,要解决100元找零钱的问题,可以使用嵌套循环来枚举所有可能的找零组合。以下是一个改进和润色后的代码示例,它清晰地展示了如何计算使用1元、2元和5元硬币找零的所有可能方式。
```java
public static void splitMoney(int total) {
int count = 0; // 用于计数不同找零方式的数量
// 外层循环控制5元硬币的数量
for (int five = 0; five <= total; five += 5) {
// 次外层循环控制2元硬币的数量
for (int two = 0; two <= total - five; two += 2) {
// 内层循环控制1元硬币的数量
for (int one = 0; one <= total - five - two; one += 1) {
// 检查当前的硬币组合是否有效
if (five >= 0 && two >= 0 && one >= 0 && (total - (five + two + one)) >= 0) {
// 输出当前的找零组合
System.out.printf("%d元=%d个5元 +%d个2元 +%d个1元 +%d个0.1元\n",
total, five / 5, two / 2, one / 1, total - (five + two + one));
count++; // 有效组合,计数器加一
}
}
}
}
// 输出总的找零组合数量
System.out.println("\n总共有" + count + "种找零方法。");
}
// 调用函数
splitMoney(100);
```
这段代码首先初始化一个计数器来追踪不同的找零方法。然后,它使用三个嵌套的`for`循环来遍历所有可能的5元、2元和1元硬币的数量。每次循环都会检查当前的硬币组合是否满足总金额的要求。如果组合有效,它会输出具体的找零方式,并且更新计数器。最后,函数会输出总共找到的找零方法数量。
注意,在原代码中有一些逻辑错误,例如`b=b+5`、`c=c+2`和`d=d+1`的增量应该在循环条件中进行检查,以确保硬币的数量不会超过所需的总数。此外,还修正了输出格式,使其更加清晰易读。
⑶ JAVA如何把键盘输入的金额换转成中文显示。在线求解释~~~
/**
*将10亿以内的阿拉伯数字转成汉字大写形式
*@authorHp
*
*/
publicclassTestNum{
//整数部分
privateStringintegerPart;
//小数部分
privateStringfloatPart;
//将数字转化为汉字的数组,因为各个实例都要使用所以设为静态
privatestaticfinalchar[]cnNumbers={'零','壹','贰','叁','肆','伍','陆','柒','捌','玖'};
//供分级转化的数组,因为各个实例都要使用所以设为静态
privatestaticfinalchar[]series={'元','拾','百','仟','万','拾','百','仟','亿'};
/**
*构造函数,通过它将阿拉伯数字形式的字符串传入
*@paramoriginal
*/
publicTestNum(Stringoriginal){
//成员变量初始化
integerPart="";
floatPart="";
if(original.contains(".")){
//如果包含小数点
intdotIndex=original.indexOf(".");
integerPart=original.substring(0,dotIndex);
floatPart=original.substring(dotIndex+1);
}
else{
//不包含小数点
integerPart=original;
}
}
/**
*取得大写形式的字符串
*@return
*/
publicStringgetCnString(){
//因为是累加所以用StringBuffer
StringBuffersb=newStringBuffer();
//整数部分处理
for(inti=0;i<integerPart.length();i++){
intnumber=getNumber(integerPart.charAt(i));
sb.append(cnNumbers[number]);
sb.append(series[integerPart.length()-1-i]);
}
//小数部分处理
if(floatPart.length()>0){
sb.append("点");
for(inti=0;i<floatPart.length();i++){
intnumber=getNumber(floatPart.charAt(i));
sb.append(cnNumbers[number]);
}
}
//返回拼接好的字符串
returnsb.toString();
}
/**
*将字符形式的数字转化为整形数字
*因为所有实例都要用到所以用静态修饰
*@paramc
*@return
*/
privatestaticintgetNumber(charc){
Stringstr=String.valueOf(c);
returnInteger.parseInt(str);
}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
System.out.println(newTestNum("123456789.12345").getCnString());
System.out.println(newTestNum("123456789").getCnString());
System.out.println(newTestNum(".123456789").getCnString());
System.out.println(newTestNum("0.1234").getCnString());
System.out.println(newTestNum("1").getCnString());
System.out.println(newTestNum("12").getCnString());
System.out.println(newTestNum("123").getCnString());
System.out.println(newTestNum("1234").getCnString());
System.out.println(newTestNum("12345").getCnString());
System.out.println(newTestNum("123456").getCnString());
System.out.println(newTestNum("1234567").getCnString());
System.out.println(newTestNum("12345678").getCnString());
System.out.println(newTestNum("123456789").getCnString());
}
}
⑷ 用Java一个简单的画图程序
简单啊,先引入相应的组件包import java.awt.*;import java.awt.event.*;import javax.swing.*;写的类要继承JFrame 接下来就是调用刚刚引入包版里面的方法了,权paint();这是就思路了。