poj1002---手算乘法

本文介绍了一种多位数乘法算法的具体实现过程,并详细解释了如何将该算法转化为计算机程序代码。文中还讨论了特殊情况的处理方法,例如包含小数点和前导零的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



这题,对我锻炼意义挺大的。

在知道多位乘法的算法的情况下,如何将其转换成代码

还要按照要求,排除各种特殊情况


特殊情况:

00.000 1

1.2525 0

10.000 1


#include<stdio.h>
#include<string.h>
#define M 1000

int num[8][1000],mum[8],ans[1000];

void main()
{
	int i,j,ii,k,m,n,place,d,kk,kkk,flag;
	int x;
	char s[6];
	x=5;
	while(scanf("%s%d",&s,&n)!=EOF)
	{
		if(n==0)  //如果n为0,即0次方,则输出1
		{
			printf("1\n");
			continue;
		}

		x=5;  //默认为5位数字
		k=0;
		//数组清零
		for(i=0;i<M;i++)
		{
			ans[i]=0;
			for(j=0;j<8;j++)
				num[j][i]=0;
		}
		
		
		flag=1;
		for(i=x;i>=0;i--)
		{
			if(s[i]!='.')
			{
				ans[k]=mum[k]=s[i]-'0'; //将5位数组赋值
				if(flag==1)  //如果小数点与非0数前,存在0,则舍去,同时总位数-1
				{
					if(ans[k]==0)
					{x--;continue;}
					else flag=0;
				}
				k++;
			}
			else
			{
				place=x-i;  //确定小数点位置
				flag=0;

			}
		}

		//如果位数为0,说明是0,输出0
		if(x==0)
		{
			printf("0\n");
			continue;
		}
		


		
		for(i=0;i<n-1;i++) //开n次方,那么要乘n-1次原数字
		{
			//得到数组num[0][]到num[5][]
			kk=0;
			for(j=0;j<x;j++)
			{
				d=0;
				for(ii=0;ii<k;ii++)
				{
					if(ii<kk)
					{
						num[j][ii]=0;
						continue;
					}
					num[j][ii]=d;  //这里是用手算多位乘法的方法,得到的代码
					d=ans[ii-kk]*mum[j];
					num[j][ii]+=d;
					d=num[j][ii]/10;
					num[j][ii]=num[j][ii]%10;
	
				}
				num[j][k]=d;
	
				kk++;  //平移数,也就是手算乘法时那行的右移数
				k++; //位数+1
			}
			


			d=0; //相加所有num,得到最终结果ans
			for(ii=0;ii<k;ii++)
			{
				ans[ii]=d;
				for(j=0;j<x;j++)
					ans[ii]+=num[j][ii];
				d=ans[ii]/10;
				ans[ii]=ans[ii]%10;

			}
			ans[k]=d;
		}


		place=place*n; //确定最终小数点位置
		flag=1;

		for(j=k;j>=0;j--)
		{
			if(j>place-1&&flag==1) //排除小数点和非整数前的‘0’
			{
				if(ans[j]==0)
					continue;
				else
					flag=0;
			}
			if(j==place-1)
				printf(".");

			printf("%d",ans[j]);
		}
		printf("\n");

	}
		
}



资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值