貌似很多都是靠改变单位来处理的
-
1 -
1淡观天下 ,神经刀
猫头鹰 赞同来自@和谐小小 ,我就说自己实现感觉太粗糙。
……大数运算早有标准解法和各种库的,像是java和.net库里都带了大数的数据类型,C++也有大量第三方库,用不着自己粗糙实现。标准的实现方法是一个int数组,每一个int存放大数的32bit,这样就是无限bit的数了。
后来我又想了想,用的话就是直接用,大概实现就是我那么个实现,不过确实像原答案那样实在是浪费内存空间,按照和谐小小的说法确实是合理的多的。
刚才又看了下java下的biginteger包,发现还应该把变量合并,合并成想小小说的数组,这样的话在调用的时候函数就只用输入两个形参,要方便很多。
我吸收知识的地址:http://blog.csdn.net/qq_23191031/article/details/50606577
以下是原答案:
--------------------------------------------------------------------------------------------------------------------------------
参考
假面龙骑士龙骑士无面者(卧槽我是怎么看错的···)的答案,我想了想,想了一个比较粗糙的解决方法。以C语言为例:
把数字分段,每四位数字用一个变量存储,如123456789000这个12位的数字(我就不举太长的了,反正就是这个思路),1234,5678,9000三个数字,运算时采取正常运算+满进一的方法(加减法好处理,不过乘除法也不难,以整个数字*3为例,由于每个变量实际存储的大小远小于能存储的最大值,直接*3,然后用结果数对整除10000,再将得数与高位变量数值相加),在输出时用‘itoa()’函数,得到“1234”,“5678”,“9000”三个字符串,再用strcat()函数输出即可。
简单的写下:
void Print_Big_Long(int a,int b,int c) //用来转化为字符串+输出
{ //可以根据需要调整为返回指针
printf(%s,strcat(strcat(itoa(a),itoa(b)),itoa(c)));
}
int *add(int a,int b,int c,int add) //做加法的函数(粗糙版)
{
c+=add%pow(10,4);
b+=add%pow(10,8)/pow(10,4);
a+=add/pow(10,8);
if(c>9999)b+=c/pow(10,4),c=c%pow(10,4); //超范围时向高位增加
if(b>9999)a+=b/pow(10,4),b=b%pow(10,4);
//我没写a超范围怎么办,理论上来说需要添加一个增加变量的函数,但是我懒得写了
}
同理减法。乘法如果有之前有提到,不过一般放置挂机类不会出乘法吧?(原谅我没玩过这种游戏),除法的话要更麻烦一些,需要把除数分段,然后优先除高位,若商取余大于0即是可以除,不过考虑到游戏类型,应该也是不使用的,就不详细说了,要是这种游戏是有这个需要的就私信我。
-
0 -
0龙骑士无面者 ,现在是菜鸟工程师,渴望成为专业模型玩家
不知题主有没有玩过Clicker Heros,我挂机上百小时,伤害值已经达到了十进制e200(10的200次方)以上,这个数字已经远远超过了128位二进制数所能表示的最大数字,这就意味着计算机不能把它当作“数字”处理了。
那么,用什么办法表示他们呢?
很简单,“写”出来。
须知,“写”一个十进制e200数量级的数字出来,只要两百个ASCII码,两百个ASCII码的大小对于现代计算机而言小的可以忽略。可以说随你数字有多大,我能“写”出来的最大的数超乎你的想象。
但具体实现中不一定用ASCII码来实现,因为ASCII码比较古老,提供的含义比较有限,现在的放置类有可能使用了更先进的编码(比如unicode),用可接受的额外开销换取更轻松的开发和更丰富的操作方法。
不过,用“写出来”的方法处理数字会很蛋疼,有可能要自己编写一整套运算函数。
-
0AikeKo ,Galgame、Dota2、Steam
从小到大分别为:K M B T q Q s S O
1 O=10^3 S=10^6 s=10^9 Q=10^12 q=10^15 T+10^18 B=10^21 M=10^24 K=10^27
这么大暂时已经可以试用大多数放置类游戏了。
参考自我在****网站上偶尔点进去的挂机小黄油Fap Titans(溜了)
-
登录奶牛关账号即可参与讨论
{{question['follower_count']}} 个玩家关注
相关元素
相关游戏
相关问题
2D 相比 3D 的制作成本上有何差异?10人关注 3个回答
想做galgame,初学者如何从零学起?13人关注 7个回答
从零设计/开发一个游戏BOSS的完整流程是怎样的?14人关注 2个回答
问题被以下收藏夹收录
各种点击/放置类游戏的大数字处理有甚特别技巧吗?
0 条评论