34 倒数和
作者: wy时间限制: 1S章节: 字符串
问题描述 :
从键盘输入一串字符串(包含空格),将输入字符串中的所有数字(0除外)的倒数相加,列出算式,并输出最后的结果。如果除0外没有数字字符,则输出数字0。
输入说明 :
你写的程序要求从标准输入设备中读入测试数据作为你所写程序的输入数据。标准输入设备中有多组测试数据,每组测试数据仅占一行,每行有一个字符串(包含空格),字符串长度不大于200。每组测试数据与其后一组测试数据之间没有任何空行,第一组测试数据前面以及最后一组测试数据后面也都没有任何空行。
输出说明 :
对于每一组测试数据,你写的程序要求计算出一组相应的计算结果,结果保留两位小数,并将这一组计算结果作为你所写程序的输出数据依次写入到标准输出设备中。每组运算结果单独形成一行数据,其行首和行尾都没有任何空格,每组运算结果与其后一组运算结果之间没有任何空行,第一组运算结果前面以及最后一组运算结果后面也都没有任何空行。注:通常,显示屏为标准输出设备。
输入范例 :
asd122fgh5##4df
abc0def
输出范例 :
1/1+1/2+1/2+1/5+1/4=2.45
0
import java.util.Scanner;
public class test_34 {
/**
* 34 倒数和
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] a = new int[200];
int len;
while (sc.hasNext()){
len=0;
String next = sc.next();
char[] chars = next.toCharArray();
for (char ch:chars) {
if(ch-'0'>0 && ch-'0'<=9){
a[len++]=ch-'0';
}
}
if(len==0){
System.out.println(0);
continue;
}
double ans=0;
StringBuilder builder = new StringBuilder();
for (int i = 0; i < len; i++) {
if(a[i]!=0){
ans+=1/(double)a[i];
}
builder.append(1).append("/").append(a[i]);
if(i==len-1){
builder.append("=");
}else{
builder.append("+");
}
}
System.out.println(builder.append(String.format("%.2f",ans)).toString());
}
}
}