# String Manipulation# Basic I/O

j940 - 科學記號

🔗 前往 ZeroJudge 原題

題目描述

題目要求將一個科學記號表示的數字轉換為一般表示法並輸出。輸入包含有效數 a (去掉小數點後的整數) 和指數 n。輸出應為 a 乘以 10 的 n 次方所得到的結果。

解題思路

題目給定的有效數 a 是一個整數,指數 n 也是一個整數。將 a 轉換為字串,然後在字串的第 n 個位置插入一個小數點即可得到結果。由於題目保證 n 的範圍,因此不需要考慮字串長度溢出的問題。

複雜度分析

  • 時間複雜度: O(len(s)),其中 len(s) 是有效數 a 的字串長度。
  • 空間複雜度: O(1),因為只使用了常數級別的額外空間。

程式碼

#include <bits/stdc++.h>
#define ll long long
using namespace std;
string s;
int a;
int main(){
	cin.tie(0); ios::sync_with_stdio(0);
	cin >> s >> a;
	for(int i=0;i<s.size();++i){
		cout << s[i];
		if(i==a)cout << '.';
	}
}

Discussion