uva 10494 高精度除法

这道题我wa了4次!!!RE了一次,直到看到了RE我才看到了希望,果然,把数组开大一点就过了,小白

在uva上的题好像叙述都不太精确,从来都不说数据最长多少,以至于只能瞎开数组,白白RE了一次,wa的原因是因

为数据类型错了,应该开long long的,我竟然忘了商也可以是大数的,,,唉,还是不够细心,不够认真啊。

贴代码:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define  ll long long
char a[3000];
char b[2];
ll  mul[3000];
int main()
{
	ll sum,n,mod;
	int i,j,s,flag,flag1;
	while(scanf("%s%s%lld",a,b,&n)!=EOF)
	{
		s=flag=0;
		sum=0;
		int len= strlen(a);
		for(i=0; i<len; i++)
		{
			while(sum<n)
			{
				if(i>=len)
				{
					flag=1;
					break;
				}

				sum=sum*10+a[i]-'0';
				if(sum<n)
					mul[i]=0;
				i++;
			}
			i--;
			if(flag)
			{
				mod=sum;
				break;
			}
			else
			{
				mod=sum%n;
				mul[i]=sum/n;
				sum=mod;
			}
		}

		if(b[0]=='/')
		{
				flag1=0;
			 for(i=0;i<len;i++)
			 {
			   if(flag1==0&&mul[i]==0)
			   		continue;
				printf("%d",mul[i]);
				flag1=1;
			 }
			 if(flag1==0)
			 	printf("0");
				printf("\n");
		}
		else if(b[0]=='%')
			printf("%lld\n",mod);
	}
	return 0;
}

今天六一儿童节,给a_jie买了好多好吃的,这个吃货,竟然在睡觉,每次看书都是看睡着,不知道好好学

习,一直都是令我头疼的难题!!!慢慢教育吧,我都不想再说了。。。

时间: 2024-08-08 21:00:46

uva 10494 高精度除法的相关文章

【算法:1】高精度除法

高精度除法,我用高精度减法来模拟 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #include<string> using namespace std; inline int read() { int x=0,f=1;char ch=getchar();

中石油-高精度除法-java版

问题 G: [高精度]高精度数除以低精度数I 时间限制: 1 Sec  内存限制: 512 MB提交: 19  解决: 15[提交][状态][讨论版] 题目描述 修罗王聚集了庞大的暗元素以施展隐匿魔法,该魔法施展后将对其周边的时空产生隐匿效果,当然,隐匿的效果好坏取决于是否将暗元素平均地分配在其周边时空,显然这涉及高精度除法的编程.考虑到邪狼的理解能力,修罗王不得不先将问题简化为:输入一被除数(位数≤5000),输入一除数(整型数据范围内),输出整数商,忽略小数. 输入 共两行,第1行为一个数字

poj 2635 The Embarrassed Cryptographer 筛素数+高精度除法

题意: 给K(<10^100),L(<10^6),求K小于L的最小素因子并输出,如果没有则输出GOOD. 分析: 枚举小于L的素数用高精度除法判断是否是因子,关键是怎么高效筛素数,先给一种比较慢的筛法: primes[max_prime_num],num=0; memset(vis,0,sizeof(vis)) for(int i=2;i<maxL;++i) if(vis[i]==0){ prime[num++]=i; for(int j=2*i;j<maxL;j+=i) vis[

POJ 2325 Persistent Numbers#贪心+高精度除法

(- ̄▽ ̄)-* 这道题涉及高精度除法,模板如下: char s[1005]; char division[1005];//存储进行高精度除法的数据 bool bignum_div(int x) { int tot=0,num=0; for(int i=0;s[i];i++) { num=num*10+s[i]-'0'; division[tot++]=num/x+'0'; num%=x; } division[tot]='\0';//利于进行strcpy() if(num==0) //有适合的

【算法学习笔记】34.高精度除法 SJTU OJ 1026/1016

高精度除法, 这个和加减乘一样,我们都要从手算的角度入手.举一个例子,比如 524134 除以 123.结果是4261 第一位4的来源是 我们把 524和123对齐,然后进行循环减法,循环了4次,余32,将32134的前三位321继续和123对齐,循环减法2次,余75,把7534的前三位753和123对齐,循环减法6次,余15,将154和123对齐,只能减1次,所以结果是4 2 6 1. 把上述过程程序化 1.把A,B两个数存入char数组 0下标表示的是最高位2.把A的前lenB位和B对齐进行

使用java求高精度除法,要求保留N位小数

题目要求是高精度除法,要求保留N位小数(四舍五入),并且当整数部分为0时去除0的显示 1 import java.math.BigDecimal; 2 import java.util.Scanner; 3 4 public class BD 5 { 6 public static void main(String[] args) 7 { 8 Scanner scanner = new Scanner(System.in); 9 while(scanner.hasNext()) 10 { 11

高精度除法(大数相除)

高精度除法(高除高) #include<cmath> #include<iostream> #include<cstdio> #include<cstring> #include<string> using namespace std; int a[101],b[101],c[101],d,i; void shuru(int a[]) { string s; cin>>s; //读入字符串 a[0]=s.length(); //a[0

[结论][高精度除法]JZOJ 3771 小Z的烦恼

Description 小 Z 最近遇上了大麻烦,他的数学分析挂科了.于是他只好找数分老师求情. 善良的数分老师答应不挂他,但是要求小 Z 帮助他一起解决一个难题问题是这样的,现在有 n 个标号为 1-n 的球和 m 个盒子,每个球都可以放进且只能放进一个盒子里面,但是要满足如下的规则: 1.  若把标号为 i 的球放进了第 j 个盒子,那么标号为 2*i 的球一定要在第 j+1 个盒子里面(若 j<m) 2.  若把标号为 i 的球放进了第 j 个盒子,并且 k*2=i,那么标号为 k 的球一

AcWing 794.高精度除法

AcWing 794.高精度除法 题目描述 给定两个正整数A,B,请你计算 A / B的商和余数. 输入格式 共两行,第一行包含整数A,第二行包含整数B. 输出格式 共两行,第一行输出所求的商,第二行输出所求余数. 数据范围 1≤A的长度≤100000, 1≤B≤10000 输入样例 7 2 输出样例 3 1 题目思路 低角标存低位,高角标存高位:按位依次向后除,A[i]除整个b,余数进位 #include<iostream> #include<string> #include&l