当前位置: 代码迷 >> C语言 >> [求助]算法问题(感谢斑竹,问题已圆满解决)
  详细解决方案

[求助]算法问题(感谢斑竹,问题已圆满解决)

热度:177   发布时间:2007-07-01 21:42:18.0
[求助]算法问题(感谢斑竹,问题已圆满解决)

我想用数组的方法实现数的相除运算:
int a[4],b,c[3];
a[1]=1;a[2]=2;a[3]=9;a[4]=6; /*意思是存储1296*/
b=36;


/*如何从数组中提出数据来实现 1296/36=36 ,并讲结果放在数组c中存储(既c[1]=3;c[2]=6) 呢?


[此贴子已经被作者于2007-7-1 23:46:25编辑过]

搜索更多相关的解决方案: 算法  斑竹  感谢  

----------------解决方案--------------------------------------------------------
首先你的数组就定义错了, int a[4]; 包括a[0],a[1],a[2],a[3],没有a[4],
可以用a[0]=1,a[1]=2,a[2]=9,a[3]=6,
c[3]=a[0]*1000+a[1]*100a[2]*10+a[3]/b
----------------解决方案--------------------------------------------------------

嗯...见笑了,学了VB,忘了C的定义了...
谢谢楼上的方法.
但如果定义a[40],里面存了40了数,这个大数除以36呢? 假设这个大数可以被36整除.
(要是好像朋友你刚才的那中方法,c[3]必然会溢出!)
那改怎么处理呢?

[此贴子已经被作者于2007-7-1 22:07:40编辑过]


----------------解决方案--------------------------------------------------------
模拟手动算法(-,%).
----------------解决方案--------------------------------------------------------
愿闻其详!~
----------------解决方案--------------------------------------------------------
我跟你举个例子.
12345678 / 17
判断出比除数大的部分被除数123去除17=7...4
把4加到后面部分成了445678/17+70000
重复做上面的操作,得到结果.
----------------解决方案--------------------------------------------------------
nuciewth,好方法!~
----------------解决方案--------------------------------------------------------


就是nuciewth的
今天没登 呵呵


----------------解决方案--------------------------------------------------------
没看明白
----------------解决方案--------------------------------------------------------
这个算法还是那次计算机组成原理的
计算机里二进制的加 乘法里的 是这样的
ls的好好看看嘛

----------------解决方案--------------------------------------------------------