洛谷顺序结构题P5703苹果采购

题目很简单
题目描述

现在需要采购一些苹果,每名同学都可以分到固定数量的苹果,并且已经知道了同学的数量,请问需要采购多少个苹果?
输入格式

输入两个不超过 10^9 正整数,分别表示每人分到的数量和同学的人数。
输出格式

一个整数,表示答案。保证输入和答案都在int范围内的非负整数。
输入输出样例
输入 #1

5 3

输出 #1

15

/*
题目思路很清楚,就是给两个整数求它们的乘积,这里需要考虑给出的整数范围为10^9,大约相当于2的32次幂,结果有可能超过最大表示范围,所以这题就是一道大整数相乘的高精度算法。
*/

#include
#include
#include
#include
using namespace std;
const int maxn=10010;//数组开大些以防万一
int a[maxn],b[maxn],c[maxn];//乘数,被乘数和结果
int main(){
	string s1,s2;
	cin>>s1>>s2;
	int len1=s1.length();
	int len2=s2.length();
	int i,j;
	for(i=0;i<len1;i++)
	a[len1-i-1]=s1[i]-'0';//将s1的char转为数字并倒着存在a数组 
	for(j=0;j<len2;j++){
		b[len2-j-1]=s2[j]-'0';
	}
	int len=len1+len2;//乘后结果的长度 
	int x=0;
	for(i=0;i<len1;i++)//s1的长度,即从s1的低位依次与s2每个位相乘 
	{
		for(j=0;j<len2;j++){
			c[i+j]+=a[i]*b[j];//乘的结果放在i+j位 
			c[i+j+1]+=c[i+j]/10;//取整后即为进位 
			c[i+j]%=10;//余数留在低位 
		}
	}
	while(c[len-1]==0&&len>1){//去掉高位多余的零 
		len--;
	}
	for(int i=len-1;i>=0;i--){//倒着输出 
		cout<<c[i];
	}
	cout<<endl;
	return 0;
} 

你可能感兴趣的:(洛谷题单顺序结构)