标题:[求助]大数除法问题
只看楼主
乌鸦丘比特
Rank: 1
等 级:新手上路
威 望:2
帖 子:625
专家分:0
注 册:2004-7-19
得分:0 
以下是引用穆扬在2006-7-17 17:11:30的发言:

稍微麻烦一点
道理还是一样的

如果两个都是高精度数的话好象只能够用减法来实现了


我喜欢创造,一只扑腾着翅膀向天空飞翔的乌鸦
2006-07-17 19:38
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-17 21:45
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 


判断是否可以整除问题.
对输入的一个某进制下的整数,是否可以整除该数各位数之和.
这是背景:
A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value.

Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not.
我就演变了一下.高手求教.



倚天照海花无数,流水高山心自知。
2006-07-19 22:19
穆扬
Rank: 1
等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-20 08:45
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
当然可以。关键是做除法,而且是在某进制下的除法。

倚天照海花无数,流水高山心自知。
2006-07-20 11:42
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
得分:0 
以下是引用nuciewth在2006-7-19 22:19:14的发言:


判断是否可以整除问题.
对输入的一个某进制下的整数,是否可以整除该数各位数之和.
这是背景:
A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value.

Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not.
我就演变了一下.高手求教.


请问楼主,您是要解这题,还是最上面的问题?


对不礼貌的女生收钱......
2006-07-20 14:35
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
两个问题的实质不是一样的啊。
斑竹就做上面这个吧。

倚天照海花无数,流水高山心自知。
2006-07-20 15:22
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
得分:0 

A Niven number is a number such that the sum of its digits divides itself. For example, 111 is a Niven number because the sum of its digits is 3, which divides 111. We can also specify a number in another base b, and a number in base b is a Niven number if the sum of its digits divides its value.
Given b (2 <= b <= 10) and a number in base b, determine whether it is a Niven number or not.
以这题来讲,您都可以把输入的数num,num为b进制(假设进制为b,由用户输入),在十进制的基础上,把各位相加,得数sum,再把b转换为十进制数de_num;只要判断sum|de_num就可以了,
如:5进制1234
step1:存入字符串str_num[];
step2:把各位相加,sum+=str_num[i++]-48;
step3:把str_num中的字符转换为十进制数de_num;
step4:de_num%sum?puts("no"):puts("yes");
您看看,这样可以不?


对不礼貌的女生收钱......
2006-07-20 15:58
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
是个方法,你知道要把一个别的进制大数转换为十进制应该很难吧

况且还不是要做一次除法。

倚天照海花无数,流水高山心自知。
2006-07-20 16:35
soft_wind
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:1430
专家分:0
注 册:2006-4-5
得分:0 

以下程序用递归实现别的进制到十进制的转换。

#include "stdio.h"
#include "math.h"
#include "string.h"
long num=0;
void to_decimal(char *str,int radix)
{

if(*str)
{
num+=(*str-48)*pow(radix,strlen(str)-1);
to_decimal(str+1,radix);
}
}
int main()
{
char str_num[]="1234";
to_decimal(str_num,5);
printf("%ld",num);
}


对不礼貌的女生收钱......
2006-07-20 16:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-78712-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.358154 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved