A1073/B1024

 Scientific Notation (20分)

单词:

  • scientific notation:科学计数法   notation:符号,记号
  • trailing:尾部的
  • the fractional portion:小数部分
  • the integer portion has exactly one digit, there is at least one digit in the fractional portion
  • 整数部分有 1 小数部分至少有 1

总结:

  1. 数据范围:①数字存储≤9999 bytes,1个char变量=1 byte → 数字长度 ≤ 9999。②指数绝对值≤9999(可用int型变量)。
  2. 思路:输入部分为(小数部分)E(指数部分)。第一步定位E,再对(小数部分)(指数部分)分情况讨论。
  3. 小数部分x:确定小数点位置。
  4. 指数部分e:
  • ①e<0,小数点前移|e|位,0.0...0xxx,输出“0.”,再输出abs(e)-1个0。
  • ②e>0,小数点后移e位,x...x.x...x,输出x中e个字符,在对应位置补小数点;
  • x...x..0...0,若x输出完而仍需后移(e>0),无小数点,末尾需要补0

注意:stoi()函数:stringint

  • 示例:stoi(strin)代表将n进制的字符串str从str[i]开始的部分转化为十进制。
  • 字符串str中含非数字的字符,则只会识别从开头到第一个非法字符之前,如果第一个字符就是非法字符则会报错。
  • ∴本题用字符E之后的子串,而不能写作int e = stoi( a,pos+1,10);这种。

代码:

//A1073 B1024
#include <iostream>
using namespace std;
#include <cstring>

int main(){
	string a;
	cin>> a;
	int pos=0;
	while( a[pos]!='E' )
		pos++;
	string x = a.substr(1,pos-1);//底数x 不含符号
	int e = stoi( a.substr(pos+1) ); //指数e  a.substr(i)从下标i到结尾 
	
	if( a[0]=='-' ) cout<<"-";
	if(e<0){
		cout<<"0."; 
		for(int i=e+1; i<0; i++){
			cout <<"0";	
		}
		cout<<x[0];
		cout<<x.substr(2);
	}else{

		cout<<x[0];
		//小数部分  从x[2]开始 

		for( int i=2; i<x.length(); i++){
			if( e==0 ){
				cout<<".";
				cout<<x.substr(i);
				break;  //需要break跳出循环 否则会超时
			}
            //if( e==0 ) cout<<"."; 原来写法 测试点4超时 
			cout<<x[i]; 
			e--;	
		}
		
		while( e ){
			cout<<0;
			e--;
		}
	}
		
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下命令将目录整理为/a/b/c: ``` mv /a/b/c/* /a/b/ rmdir /a/b/c ``` 第一行命令将c目录下的所有文件和子目录移动到b目录下,第二行命令删除c目录。注意,执行此操作时需要确保c目录中没有其他重要文件或子目录。 ### 回答2: 将目录 /a/b/c/ 变为 /a/b/c 的方法有多种。 一种方法是通过文件管理器手动删除目录 c。首先,打开文件管理器,定位到目录 /a/b/。然后,找到目录 c,右键点击 c,选择删除或者按下 Delete 键将其删除。此时,目录变为 /a/b/c。 另一种方法是使用命令行操作。首先,打开命令行终端,定位到目录 /a/b/。然后,使用命令 rm -r c 删除目录 c。rm 是 Linux 和 macOS 系统中删除命令,-r 表示递归删除目录及其内容。执行命令后,目录变为 /a/b/c。 还有一种方法是通过编程实现目录变化。可以使用脚本或编程语言来完成这个任务。例如,在 Python 中可以使用 os 模块来操作文件系统。首先,导入 os 模块,然后使用 os.rmdir() 函数删除目录 c。最后,目录变为 /a/b/c。 总结来说,可以通过手动删除、命令行操作或编程来将目录 /a/b/c/ 变为 /a/b/c。具体方法可以根据个人的操作习惯和需求来选择。 ### 回答3: 将/a/b/c/整理为/a/b/c的方法如下: 1. 删除最后一个斜杠:将路径/a/b/c/末尾的斜杠删除,得到路径/a/b/c。 2. 检查路径是否存在:确认路径/a/b/c是否存在,若存在则整理完成;若不存在,则需要进一步操作。 3. 创建路径:若路径/a/b存在,则创建路径/a/b/c;若路径/a存在,则创建路径/a/b/c;若路径/a不存在,则创建路径/a,并在其中创建路径/b和路径/c。 4. 验证整理结果:再次检查路径/a/b/c是否存在,以确保整理后路径的正确性。 综上所述,通过删除最后一个斜杠,并根据路径的存在与否来逐级创建路径,可以将整理目录/a/b/c/变为/a/b/c。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值