Codeforces-691C-Exponential notation(模擬)Java 以及輸入的處理

轉載來自:https://blog.csdn.net/qq_32680617/article/details/51924415

菜雞本人


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.Scanner;
public class Main {
	static Scanner sc = new Scanner(System.in);
	static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
	static BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
	public static void main(String[]args) throws IOException
	{
		String s = bf.readLine();
		int len = s.length();
		int pos = len;//如果沒有小數點的話 那麼就是整數理所當然小數點應該在最後
		for(int i = 0; i < len; i ++)
		{
			if(s.charAt(i) == '.')
			{
				pos = i;
				break;
			}
		} //找到小數點的具體所在位置!!!!!
		
		String t = "";
		int flag = 0;
		for(int i = 0 ; i < len; i ++)
		{
			if(s.charAt(i) > '0' && s.charAt(i) <= '9')//X.XXX 第一個X應該1~~~~9之間
			{
				t += s.charAt(i);
				t += ".";
				flag = i + 1; //找到此刻作爲前面那個數的位置
				s = s.substring(i + 1);
				s = s.replace(".","" );
				t += s;
				break;
			}
		}
		
		int gg = t.length();
		for(int i = gg - 1; i >= 1; i --)
		{
			if(t.charAt(i) == '.' || t.charAt(i) == '0')
				gg --;
			else 
				break;
		}
		out.print(t.substring(0, gg));
		if(pos != flag)
		{
			if(pos > flag)
				out.printf("E%d\n",pos - flag);
			else
				out.printf("E%d\n",pos - flag + 1);
		}
		out.flush();
	}
}

 

 

如果

s = s.substring(i + 1);
s = s.replace(".","" );
t += s;

這塊換成挨個挨個輸入的話 那麼就會T。。。。。。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章