我在C++中写了一个用字符串除以大数的程序。也就是说,一个字符串被用来存储数字的每个数字。我使用连续减法来得到余数和商。
For ex:
16/5
Subtract 16-5=11
11-5=6
6-5=1
1 is less than 5 so stop
quotient = 3 and remainder = 1
但问题是,这种方法对于非常大的数字来说非常慢。还有什么其他可能的方法可以让它变得更快?
given x=4 and y=1296;
we need to solve for z in z^x=y;
we can calculate z=6 in various ways;
问题是,如果y是一个大于10^100的非常大的数字,我如何找到z?我显然不能将这个数字存储为int,那么我该如何开始计算z呢?
实现C++会很好,如果不是这样,任何解决方案都可以。
可以使用幂函数来计算非常大的值的幂,如pow(200,200)。它也可以用于long long int值...pow(long long int,long long int)。
我在函数'int main()‘中得到这个错误/sources/tested.cpp:
/sources/tested.cpp:16:错误:调用重载的'pow(long long int&,long long int&)‘不明确
/usr/include/bits/mathcalls.h:154:注意:候选项为: double pow(double,double)
/usr/lib/gc
我是C++的新手,对于下面的代码,我对C++的行为感到困惑:
#include <iostream>
void hello(unsigned int x, unsigned int y){
std::cout<<x<<std::endl;
std::cout<<y<<std::endl;
std::cout<<x+y<<std::endl;
}
int main(){
int a = -1;
int b = 3;
hello(a,b);
return 1
我需要在c++代码中进行以下计算:
(((n*log(n)) / log(4)) + 1)
其中n的类型是‘无符号长int’(并且是2的幂,所以结果应该是整数)。
对于非常大的数字,我得到了一些错误,例如n = 9007199254740992的结果应该是238690780250636289,但是当我运行代码时,我得到了238690780250636288。
这是否是由于“log”函数没有带有'unsigned long int‘参数的实现的结果?如果是这样的话,有没有一种方法可以在不实现新的日志函数的情况下绕过它呢?
unsigned long long int upToBit(un
我需要在Matlab中计算x>1000时的sin(4^x),其中基本上是sin(4^x mod 2π),因为sin函数中的值变得非常大,Matlab为4^1000返回无穷大。我怎样才能有效地计算它呢?我更喜欢避免使用大型数据类型。
我认为转换到像sin(n*π+z)这样的东西可能是一个可能的解决方案。
假设我想要将印度手机号码存储在一个MySQL表中,因为记录的数量非常大,所以我想优化我的存储。印度的移动电话号码是10位数字,通常以7、8或9开头。例如9XXXXXXXXX。
相关的MySQL字段有:
Type Storage Minimum Value Maximum Value
(Bytes) (Signed/Unsigned) (Signed/Unsigned)
INT 4 -2147483648 2147483647
我希望从用户那里获得一个非常大的数字,并将该数字的每个单独数字分别放在数组的行中。这就是我用c++编写这段代码的原因。但是,当我运行代码并复制那个大数字并粘贴到windows中时,它只接收4094位数字,并且不允许写入更多的数字。怎么解决这个问题?
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int size=0;
int *a=NULL;
int *b=NULL;
int count=0;
char x='0'