zoukankan      html  css  js  c++  java
  • 题解 P6745 『MdOI R3』Number

    前言

    不知道是不是正解但是觉得挺好理解。

    科学计数法

    将一个数表示为(a imes 10^x) 的形式。其中(aleq10)(x) 为整数。

    (sf Solution)

    其实这题可以看成(10^k)(x) 两个大数相加。所以呢,就有了高精的写法。

    • (k) 的处理

    我们都知道(10^k) 其实就是(1000.......0000)(1) 后面(k)(0)

    所以只要(a_{k+1}gets1)

    • (x) 的处理

    就是一个裸的高精加了啦。

    强烈安利

    (sf Code)

    #include<cstdio>
    #include<string>
    #include<iostream>
    using namespace std;
    string s;
    int k,len;
    int a[100001];
    int main()
    {
    	scanf("%d",&k);
    	cin>>s;
    	for(int i=s.length()-1;i>=0;--i)
    		a[++len]=s[i]-'0';//转换成数字
    	a[k+1]++;//处理k
    	len=max(len,k+1);//获取位数
    	for(int i=1;i<=len;++i)
    		if(a[i]>9)
    			a[i+1]++,a[i]%=10;//处理进位
    	if(a[len+1])
    		++len;//最高位的处理
    	for(int i=len;i>=1;--i)
    		printf("%d",a[i]);//倒序输出结果
    	return 0;
    }
    
  • 相关阅读:
    super的使用
    Django--自定义 Command 命令
    Django models
    二柱子的编程 四则运算2
    阅读《梦断代码》计划
    随机数计算小学四则运算
    人月神话有感
    软件演化
    软件测试
    软件实现
  • 原文地址:https://www.cnblogs.com/CM-0728/p/13475610.html
Copyright © 2011-2022 走看看