2的100次方,说下你们的思路,该怎么处理
发布时间:2011-06-28 21:48:21 文章来源:www.iduyao.cn 采编人员:星星草
2的100次方,说下你们的思路
2的100次方,说下你们的思路。
我的想法是:建立一个数组35个元素{1,0,0,0,0,0,0,0}第一个是1其余是0
然后用2分别乘以各个数组元素,大于10了向后面的进一位。
可以实现的!
------解决方案--------------------
2的100次方很容易,在二进制中就是1后面加100个0。关键在于你要用它做什么?根据你的用途决定应该如何计算它(从而使你能够使用)。
比如说,你想以十进制显示2的100次方,那么问题的实质是怎样将2的100次方“计算成”能够以十进制使用的形式。二进制转十进制的最佳办法就是*2。所以,还是LZ的方法最好。
当然,使用通用的大数类型的也很好,呵呵。
------解决方案--------------------
#include <iostream>
#include <string>
#include <vector>
using namespace std;
void f(int n)
{
if(n)
{
const int number = 2;
vector <int> vec(1,number);
int i = 1;
while(i != n)
{
vector <int> ::iterator iter = vec.begin();
vector <int> ::iterator itd = vec.begin();
for(;itd != vec.end(); ++ itd)
(*itd) *= 2;
for(;iter != vec.end(); ++ iter)
{
vector <int> ::iterator iter_ = iter + 1;
if((iter_) != vec.end())
{
if((*iter) > 10)
{
(*iter) = (*iter) % 10;
(*(iter + 1)) ++;
}
}
else
if((*iter) > = 10)
{
(*iter) %= 10;
vec.push_back(1);
break;
}
}
++i;
}
vector <int> ::iterator j = vec.end() - 1;
while(j != vec.begin())
{
cout < < (*j);
j--;
}
j = vec.begin();
cout < < (*j);
return;
}
cout < < "1n ";
return;
}
int main()
{
int n;
cout < < "Input the number: ";
cin > > n;
cout < < "The rusult is: ";
f(n);
system( "PAUSE ");
return 0;
}
------解决方案--------------------
用int数组存放被乘数,按位挨个乘,然后进位
------解决方案--------------------
如果只是要求2进制结果的话,用bitset就行了。。。。
#include <iostream>
#include <bitset>
using namespace std;
int main()
{
bitset <102> b(2);
cout < <(b < <100) < <endl;
system( "pause ");
return 0;
}
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
身为程序员一定要学C吗?还是直接学其他语言就可以了?
本来有javascript基础.
但想学c++或者c#.不知道从何开始.
有一次在某网站看...
-
有用双屏幕开发的吗?
RT,本人新手,昨天公司发了个大屏幕的显示器,本来是笔记本,结果我双屏幕切换时把两个显卡驱动都禁用了,两个显示器...
-
急!Microsoft Visual Studio 2010图标显示问题!
一开始我是把VS的那个无穷大似的图标锁定在任务栏里的,后来解锁了,然后桌面上、开始...
-
AIX下如何得知一个文件是否被进程打开?
问题可以参考
http://topic.csdn.net/u/20110809/23/d4d8db23-07eb-4ac3-b212-c5a010820c...
-
推荐一款2000左右的智能机
RT~
------解决方案--------------------
merry christmas
------解决方案--------------------
小...
-
关于 % 的小问题,求解
有这样一句提示信息:
printf("n请输入一个型如2+3*(4+5)-3^2%4*6/2的表达式n");
但在运行后输出是:
请输入...
-
新手求助
大家好,鄙人刚来,菜鸟一个,想知道如何下载别人上传的资源,为什么没有下载链接,是需要一定的分数才能下载还是怎么回事?希望好...
-
CSDN有搜索自己发言或者某人发言的功能吗
请指教
------解决方案--------------------
没有。。。
------解决方案------------...
-
订到2张回成都的车票, 不容易啊, 散分
12点左右就每5分钟刷一次, 从13号到16号就一直只有无坐...
13:55 刷出3张硬卧, 大喜, 结...
-
计算机专业大四应该学点什么东西呢?
我现在的情况是已经保研,计算机专业专业硕士。现在大四上半学期快结束了,寒假和下学期除了毕业...