【高精度】采购员的烦恼

摘要:
3#包括<算法>b[1000]={0};len2=t.size();i++)14{15a[i]+=b[i];intn)25{26字符串;a[200]={0};i——)a[len-i-1]=s[i]-'0';30对于(inti=0;i<len;=0;43intmain()44{45cin>temp;

问题 K: 【高精度】采购员的烦恼

时间限制: 1 Sec  内存限制: 64 MB
提交: 4  解决: 4
[提交] [状态] [讨论版] [命题人:外部导入]

题目描述

电器厂最近赶制一批电器,需要大量采购原材料,各个车间均根据生产需要向采购组递交需求清单。由于数量宠大,采购员无法准确算出购买所有原材料的总金额。请你编写一个程序,帮助采购员算出购买所有原材料的总金额。

输入

第1行是原材料种数n(1≤n≤10000),接下来有n×2行,每两行分别代表某材料的数量sl(1≤sl≤10^100)及单价x(1≤x≤1000),即文件第2行是第一种原材料的数量,第3行是第一种原材料的单价,依次类推。

输出

购买所有原材料的总金额。

样例输入

2
1234567735456
256
48746465463
986

样例输出

364113355223254
高精度的加法运算与高精度乘以单精度的结合
【高精度】采购员的烦恼第1张【高精度】采购员的烦恼第2张
 1 #include <iostream>
 2 #include<string>
 3 #include<algorithm>
 4 using namespace std;
 5 string fun_plus(string s,string t)
 6 {
 7     string ans;
 8     int a[1000]={0},b[1000]={0};
 9     int len1=s.size(),len2=t.size();
10     int len=max(len1,len2);
11     for(int i=len1-1;i>=0;i--)  a[len1-i-1]=s[i]-'0';
12     for(int i=len2-1;i>=0;i--)  b[len2-i-1]=t[i]-'0';
13     for(int i=0;i<len;i++)
14     {
15         a[i]+=b[i];
16         a[i+1]+=a[i]/10;
17         a[i]%=10;
18     }
19     if(a[len])  len++;
20     for(int i=len-1;i>=0;i--)
21         ans+=a[i]+'0';
22     return ans;
23 }
24 string fun_multi(string s,int n)
25 {
26     string ans;
27     int len=s.size(),a[200]={0};
28     for(int i=len-1;i>=0;i--)   a[len-i-1]=s[i]-'0';
29     int w=0;
30     for(int i=0;i<len;i++)
31     {
32         a[i]=a[i]*n+w;
33         w=a[i]/10;
34         a[i]%=10;
35     }
36     while(w)    a[len++]=w%10,w/=10;
37     for(int i=len-1;i>=0;i--)
38         ans+=a[i]+'0';
39     return ans;
40 }
41 int n,x;
42 string s;
43 int main()
44 {
45     cin>>n;
46     string ans,temp;
47     while(n--)
48     {
49         cin>>s>>x;
50         temp=fun_multi(s,x);
51         ans=fun_plus(temp,ans);
52     }
53     cout<<ans<<endl;
54     return 0;
55 }
View Code

免责声明:文章转载自《【高精度】采购员的烦恼》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇一个微服务框架的情节python 高级部分下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

【Linux】鸟哥的Linux私房菜基础学习篇整理(一)

最近,一直在写PPC的模拟器和汇编器,也在做设计。所以重新看了看《鸟哥的Linux私房菜》,还是有好多命令不太熟悉。就打算写几篇blog记下来。1. nl [-bnw] filename:添加行号打印参数:-b:指定行号指定的方式,主要有两种:  -b a:表示不论是否为空行,也同样列出行号(类似cat -n);  -b t:如果有空行,空的那一行不要列出...

页面公用的部分

<header> <div class="header"> <div class="top"> <div class="top_con"> <div class="weixin" id="weixin" onMouseO...

03-Android基础知识-04-Android 中 Activity 启动模式

标准启动模式:    MainActivity.java: package com.imooc.launchmode; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import an...

16进制Unicode码和汉字互相转换

后台给我返回了一堆这样的东西,咱也不敢问,只能自己解决了! 上代码: function unicode16ToCn(unicode16data){     console.log(unicode16data);     var trans = unicode16data.match(/\u[0-9a-fA-F]{4}/g);     if(trans ...

容器虚拟化网络和Docker容器网络(转载)

容器虚拟化网络和Docker容器网络 docker 6种名称空间 UTS namespace 主机名与域名 Mount namespace 挂载点 IPC namespace 信号量、消息队列和共享内存 PID namespace 进程号 User namespace 用户和组 Network namespace 网络设备、网络栈、端口等 Linux系统...

AI学习---基于TensorFlow的案例[实现线性回归的训练]

线性回归原理复习         1)构建模型               |_> y = w1x1 + w2x2 + …… + wnxn + b        2)构造损失函数               |_> 均方误差        3)优化损失               |_> 梯度下降 实现线性回归的训练         准...