当前位置: 首页 > article >正文

针对CSP-J/S的每日一练:Day9

一、审题

题目描述

众所周知,光年是一种距离单位,1光年=9460730472580800米。今年5月6日,天文学家在最新一期《天文学与天体物理学》杂志上称,他们发现了一个距离地球只有1000光年的黑洞,这是迄今为止在肉眼可见的恒星系统中发现的距离地球最近的黑洞。即该黑洞距离地球只有9460730472580800米。为了能直观的表现出天体之间的庞大距离,请你设计一个换算器,输入光年数,输出对应的米数。

输入描述

1行。包含一个整数n,代表光年数。

输出描述

1行,即n光年的米数。

样例1

输入

1

输出

9460730472580800

样例2

输入

2

输出

18921460945161600

提示

对于100%的数据,1<=n<=10000000。

二、思路提示

        按照C++高精度乘法的【高精度数 × 低精度数】模块,我们使用n来存储低精度数,a_int[]来存储高精度数。

  • 遍历int_a,先在ans[]数组中存储真实的计算结果,然后提取进位,并且在ans[]数组中只保留个位。
  • 在逆序输出之前,进行最高位的处理(如果进位不是0,那么要在ans[]数组中先存储进位,然后将进位 ÷ 10,因为进位有可能是一个多位数)。

三、代码实践

#include <iostream>
#include <cstring>
using namespace std;

int main()
{
    // 输入光年数
    int n;
    cin >> n;
    
    // 转换进率
    char a_str[1005] = "9460730472580800";
    int a_int[1005] = {};
    int len_a = strlen(a_str);
    for (int i = 0; i <= len_a-1; i++)
    {
        a_int[len_a-i-1] = a_str[i] - 48;
    }
    
    // 计算结果
    int ans[1005] = {};
    int len_ans = len_a;
    int in = 0;
    for (int i = 0; i <= len_ans-1; i++)
    {
        ans[i] = a_int[i] * n + in;
        in = ans[i] / 10;
        ans[i] %= 10;
    }
    
    // 去前导0
    while (in)
    {
        ans[len_ans] = in % 10;
        in /= 10;
        len_ans++;
    }
    
    // 正常倒序输出
    for (int i = len_ans-1; i>= 0; i--)
    {
        cout << ans[i];
    }
	return 0;
}

http://www.kler.cn/a/133741.html

相关文章:

  • 越南很火的slots游戏投放Google谷歌广告策略
  • 基于node一键发布到服务器的js脚本
  • git入门环境搭建
  • LlamaIndex
  • JavaScript 观察者设计模式
  • kafka面试题解答(四)
  • Sqlite安装配置及使用
  • vscode中Chinese (Simplified)汉化无效解决方法
  • 我叫:选择排序【JAVA】
  • 教程:使用 Keras 优化神经网络
  • qml制作简单的播放器--MediaPlayer
  • 如何使用贝锐花生壳内网穿透远程访问JupyterNotebook?
  • springboot项目yml文件中使用${}配置
  • linux下安装python3.8(有坑)
  • ping命令使用示例解析
  • ubuntu20.04在docker下运行ros-noetic进行开发
  • 【电路笔记】-最大功率传输
  • vulhub redis-4-unacc
  • ​软考-高级-系统架构设计师教程(清华第2版)【第14章 云原生架构设计理论与实践(P496~526)-思维导图】​
  • 文本向量化
  • PTA-6-42 设计门票(抽象类)
  • [C/C++] 数据结构 LeetCode:用队列实现栈
  • 【碰碰球】弹珠游戏-微信小程序项目开发流程详解
  • 【短文】【踩坑】可以在Qt Designer给QTableWidge添加右键菜单吗?
  • 最长回文子序列 递归与动态规划
  • 【精选】项目管理工具——Maven详解