算法笔记 575 问题 C: 特殊乘法

问题 C: 特殊乘法
[命题人 : 外部导入]
时间限制 : 1.000 sec 内存限制 : 32 MB

题目描述
写个算法,对2个小于1000000000的输入,求结果。特殊乘法举例:123 * 45 = 14 +15 +24 +25 +34+35
输入
两个小于1000000000的数

输出
输入可能有多组数据,对于每一组数据,输出Input中的两个数按照题目要求的方法进行运算后得到的结果。

样例输入 Copy
24 65
42 66666
3 67
样例输出 Copy
66
180
39

#include<stdio.h>
int main() {
	//样例的输入输出是对的,可能没考虑到其他因素,明天改吧 ,已改,第二块
	long long int n1,n2;
	int res1[20],res2[20];
	int max1,max2;//sum=0;应该在函数内,咋不长记性呢 bao******
	while(scanf("%ld%ld",&n1,&n2)!=EOF){
		int sum=0; 
		for(int i=0;n1>0;i++){
			res1[i]=n1%10;
			n1/=10;
			max1=i;	
		}	
		for(int i=0;n2>0;i++){
			res2[i]=n2%10;
			n2/=10;
			max2=i;
		}	
		for(int i=0;i<max1+1;i++){//max1+1,而不是max1 
			for(int j=0;j<max2+1;j++){
				sum+=res1[i]*res2[j];
			}
		}
		printf("%d\n",sum);
	}
	return 0;
} 

```csharp
#include<stdio.h>
int main() {
	long long int n1,n2;
//	int res1[20],res2[20];没赋初值,如果n1/n2=0时,有错误
	
	int max1,max2;//sum=0;应该在函数内,咋不长记性呢 bao******
//	while(scanf("%ld%ld",&n1,&n2)!=EOF){
	while(scanf("%lld%lld",&n1,&n2)!=EOF){
		int sum=0; 
		int res1[200]={0},res2[200]={0};//开始用的20,运行错误********************** 
		for(int i=0;n1>0;i++){
			res1[i]=n1%10;
			n1/=10;
			max1=i+1;	
		}	
		for(int i=0;n2>0;i++){
			res2[i]=n2%10;
			n2/=10;
			max2=i+1;
		}	
		for(int i=0;i<max1;i++){//max1+1,而不是max1 
			for(int j=0;j<max2;j++){
				sum+=res1[i]*res2[j];
			}
		}
		printf("%d\n",sum);
	}
	return 0;
}  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值