两道BORLAND面试题

unexpectedly 2003-02-20 04:20:38
1 请阐述哥德巴赫猜想,并用编程语言算法证明
2 用编程语言实现求两个大数(128 bits)的减法
...全文
34 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vt 2003-02-21
  • 打赏
  • 举报
回复
可用链表实现第2题,把128位数分段存储在不同的节点中即可。
Schlemiel 2003-02-21
  • 打赏
  • 举报
回复
第2题的简单做法:用Python。Python天生支持无限长度的整数运算。题目是说用“编程语言”,又没说非要用C。
evence 2003-02-21
  • 打赏
  • 举报
回复
关注
Zark 2003-02-21
  • 打赏
  • 举报
回复
用char[128]来存放,然后逐位相减.(只有借位成负数时才略有些困难)
clouds_wang 2003-02-21
  • 打赏
  • 举报
回复
/* Computes a = b - c. Returns borrow.

Lengths: a[digits], b[digits], c[digits].
*/
#typedef unsigned long NN_DIGIT

NN_DIGIT CNaturalNumber::Sub(NN_DIGIT * a, NN_DIGIT * b, NN_DIGIT * c, UINT digits)
{
NN_DIGIT ai, borrow;
UINT i;

borrow = 0;

for (i = 0; i < digits; i++)
{
if ((ai = b[i] - borrow) > (MAX_NN_DIGIT - borrow))
ai = MAX_NN_DIGIT - c[i];
else if ((ai -= c[i]) > (MAX_NN_DIGIT - c[i]))
borrow = 1;
else
borrow = 0;

a[i] = ai;
}

return (borrow);
}
JoshuaLi 2003-02-21
  • 打赏
  • 举报
回复
up
unexpectedly 2003-02-20
  • 打赏
  • 举报
回复
那第2题怎么做呀??
NowCan 2003-02-20
  • 打赏
  • 举报
回复
另外,这个猜想还没有被证明,所以你只能验证。
NowCan 2003-02-20
  • 打赏
  • 举报
回复
1、现在,哥德巴赫猜想的一般提法是:每个大于等于6的偶数,都可表示为两个奇素数之和;每个大于等于9的奇数,都可表示为三个奇素数之和。其实,后一个命题就是前一个命题的推论。

http://www.oh100.com/teach/student/quwei/shuxuequwei/200208/2002050202301.html
liao2001 2003-02-20
  • 打赏
  • 举报
回复
1.哥德巴赫猜想,我在n年前看过,忘记了,久不读书多忘字呀
2.用字符串可以实现n字节的减法
unexpectedly 2003-02-20
  • 打赏
  • 举报
回复
有人会吗??
sinze 2003-02-20
  • 打赏
  • 举报
回复
时间是多少小时?

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧