一个简单的输出有关问题?高手快来哦?
一个简单的输出问题???高手快来哦??
我想写一个算法就是可以的到95.123 的12次方的精确的算法,但是不是就是这一个数字可以算的 其他的数也可以 比如:100.123的15次方等。
高手帮帮忙哦?
------解决方案--------------------
大数相乘,就是用数组模拟大数.
------解决方案--------------------
那就看你的算法和程序怎么样了。
------解决方案--------------------
http://topic.****.net/t/20061212/15/5225125.html
------解决方案--------------------
大数运算,最好计算成整数,然后控制小数点 ...
------解决方案--------------------
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
long i, j, c, len, temp = 0;
int n = 95123;
long *a = new long[4 * n]; //动态分配空间
a[0] = 1, len = 1;
for(i = 0; i <12; i++)
{
c = 0;
for(j = 0; j < len; j++)
{
temp = a[j] * n + c;
c = temp / 10000;
a[j] = temp % 10000;
}
while(c > 0) //处理进位
{
len = len + 1;
a[len - 1] = c;
c /= 100000;
a[len - 1] %= 10000;
}
}
printf( "%ld ", a[len - 1]);
for(i = len - 2; i > = 0; i--) //逆序输出
printf( "%04ld ", a[i]);
delete a; //释放空间
system( "PAUSE ");
return 0;
}
计算 95123 的 12 次方,
然后将结果加上小数点控制就可以了 ....
------解决方案--------------------
int n = 95123; //这个是底数
....
for(i = 0; i <12; i++) //这个 12是幂
可以修改上面的两个数值,就可以计算不同的大数求幂了 ....
我想写一个算法就是可以的到95.123 的12次方的精确的算法,但是不是就是这一个数字可以算的 其他的数也可以 比如:100.123的15次方等。
高手帮帮忙哦?
------解决方案--------------------
大数相乘,就是用数组模拟大数.
------解决方案--------------------
那就看你的算法和程序怎么样了。
------解决方案--------------------
http://topic.****.net/t/20061212/15/5225125.html
------解决方案--------------------
大数运算,最好计算成整数,然后控制小数点 ...
------解决方案--------------------
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
long i, j, c, len, temp = 0;
int n = 95123;
long *a = new long[4 * n]; //动态分配空间
a[0] = 1, len = 1;
for(i = 0; i <12; i++)
{
c = 0;
for(j = 0; j < len; j++)
{
temp = a[j] * n + c;
c = temp / 10000;
a[j] = temp % 10000;
}
while(c > 0) //处理进位
{
len = len + 1;
a[len - 1] = c;
c /= 100000;
a[len - 1] %= 10000;
}
}
printf( "%ld ", a[len - 1]);
for(i = len - 2; i > = 0; i--) //逆序输出
printf( "%04ld ", a[i]);
delete a; //释放空间
system( "PAUSE ");
return 0;
}
计算 95123 的 12 次方,
然后将结果加上小数点控制就可以了 ....
------解决方案--------------------
int n = 95123; //这个是底数
....
for(i = 0; i <12; i++) //这个 12是幂
可以修改上面的两个数值,就可以计算不同的大数求幂了 ....