求算法

morefish 2003-06-06 02:26:58
如何将一个数扩为定长的数,而且每次扩都得到不同的结果, 将结果反算后再得到原始的数。
...全文
49 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
morefish 2003-06-08
  • 打赏
  • 举报
回复
如果要是林子所说的这样的结果作为密码的话,岂不是太简单了。
定长或是64位, 或是128位, 或是随便的长度。
pubook 2003-06-08
  • 打赏
  • 举报
回复
不妨设为十进数整数,设原数x有m位,需要扩展y为n位,其中m<=n,首先寻找一个整数r,使得r*x为n位的最小整数,则y=r*x,并记下y和r,同时x=y/r.
程序如下:

#include "stdio.h"
mian()
{
int x,y,r,m,n,i,j,k,z;
scanf("%d %d %d",%x,%y,%n);
z=1;
for (i=1;i<=n;i++)
z=z*10;
y=0;
r=0;
while (y<z)
{
y=y+x;
r=r+1;
}
printf("y=%d,r=%d",y,r);
}
以上程序求出了y和x并显示出来,如要得到原数,把y整除x 即可。
当然,如指定的位数超过了程序设计语言能表示的位数,可以采用字符串的方法。


BlueSky2008 2003-06-08
  • 打赏
  • 举报
回复
扩:高位取随机数,低位填原数。然后用一种加密算法加密。
反算:解密,取低位。

Nownow 2003-06-07
  • 打赏
  • 举报
回复
扩:高位取随机数就行啦
反算:取低位。
one_add_one 2003-06-06
  • 打赏
  • 举报
回复
定长的数是指什么?

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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