C/C++ :: Storing Large Number?
Jan 22, 2015storing int=9000000000; gives me another number. how can i store the value?my bad int number=9000000000;
View 3 Repliesstoring int=9000000000; gives me another number. how can i store the value?my bad int number=9000000000;
View 3 RepliesI have to store large amount of data and retrieve the same data then write into file in C++. Currently I am using vector to store and retrieve. But vector is taking more time to store and retrieve the element. Is any other best data structure to store and retrieve large amount of data in unordered way?
Example code:
int I1 = 700,I2 = 32, I3 = 16;
//declare and resize the vector size
vector< vector < vector < vector<DOUBLE> > > > vPARAM;
vPARAM.resize(I1, vector< vector < vector<DOUBLE> > >
[Code] ....
I am trying to run a simulation with a large number of objects (mainly arrays and vectors). I am not sure where shall I define my objects: inside or outside of the main() function, like the following two structures:
(1) ---------------
//main.cpp
int main(){
array<double, 1000> a_1 = {};
array<double, 1000> a_2 = {};
......
func_1(a_1, a_2, ..., a_100);
return 0;
}
[Code]...
I know there is a question about scope. But besides this question (which seems have no difference between these two structures here), is there any difference in terms of execution performance or security issue?
Windows 7, 64 bits, Visual Studio 10.
I have a problem to read a large number of binary files, process them and store them under a new name. The program and routines go very well for 505 files. After reading 506 files, the program now refuses to read the next file. I have 16 Gb of memory and tried to close all other programs and restart the PC. it always stops after 506 files (512 files would be more understanding in a way...).
Here is my code. I have tried many things without success. This is only part of the loop that stops. The if test if (myfile.is_open() returns false by some reason. I can start the process again starting with the file that does not open and then it stops again after 506 files.
char * tfiBlock;
ifstream myfile (OrigFilename, ios::in|ios::binary|ios::ate);
if (myfile.is_open()) {
int lengde = myfile.tellg();
tfiBlock = new char [lengde];
//static char memblock [size];
[Code] .....
Clean up procedure:
delete[] tfiBlock;
Are there any limits to how many files that can be opened, or is it maybe someting to be set in the compiler?
I have a very large number in word ~6million digits long
I wish to make a program to check if it is prime.
I want to read a folder that contains large number of tif files. (say 1000 tif images) requirement is to read all files and store in a array/array pointer.
View 1 Replies View RelatedWe have a program that sequentially processes a large number of files (currently about 700 expected to increase to about 1500). The program performs the same processing on each file (and doesn't involve any other file) which is io-bound and not cpu-bound. This process takes several hours and it is normally performed overnight.
I've refactored the program so that the processing for each file is done within its own thread (ie one thread created for the processing of one file). This gives rise to many hundreds of io-bound threads. This refactored program is working with no errors reported and has reduced the total processing time down to about 10 minutes.
Any problems that might arise having this number of threads (700 to 1500) created/running?
Suppose i have a very large number stored as a string, say
std::string str = "1000000000000000000000000000000000001";
And i use std::stringstream to convert it to int like this
std::stringstream ss(str);
uint64_t i;
ss >> i;
Then I would be maxed out right. so how would one practically handle things like comparison of two such numbers.
I could think of 2 approaches :
1) I can compare the numbers character by character.
2) I can put the results of ss >> i; into an array then compare each element of array
would there be any other methods??
I wanted to find all the prime until a specified limit in C. I use the Sieve of Eratosthenes. But when I define the limit to anything more than a 7 digit number the program terminates.
Code:
#include<stdio.h>
#define limit 1000000000
int main(void)
{
unsigned long long int i,j;
int primes[limit] = {0};
//int count =0;
for(i=2;i<limit;i++)
}
[code]....
I believe that this might be because the size cannot be declared array cannot be more than the a 7 digit number. I think so. how to store a 10 digit number in C?And can't unsigned long long hold a 10 digit?
So I have to ask the user to enter a positive 12 digit number, and it has to be 12 digits exactly. I thought I'd do
Code:
unsigned long long int x;
do{...}
while(!(x>99999999999 && x<1000000000000));
This would obviously be fine on my 64 bit machine, but the code will be ran on a 32 bit one, where unsigned long long is, if I'm not mistaken, 32 bits. Which has a max value of 4 billion and something.
Code:
for(int i = 0 ; i < SIZE ; i ++)
{
scanf("%d" , & selection[i]);
srand((unsigned) time(&t));
draw[i] = rand() % 50; //feeling could be a problem with this line of code :::::
}
is it possible to do this. i am trying to get 6 different numbers stored into 6 elements of an array . this is the piece of the code i think there is a problem with. ie my program scans the numbers and then crashes at this point so think it could be something to do with the commented line?
The aim is : If i have a natural number [max 5 digits] (say) n=13579. Then a[4]=1, a[3]=3, a[2]=5. a[1]=7. a[0]=9.
I start with a[4]= n/10000 .. then n= n - a[4]*10000;
then a[3]= n/1000. .. n= n - a[3]*1000;
i.e a[i]= n/10^i .... n= n - a[i]*10^i;
To reduce code size i used a for loop. The code is free from any syntax errors.
Its the "output" that is weird. I enter 13579 and what the program process is:
a[4]=1 a[3]=3 a[2]=5 a[1]=8 a[0]=5
Same goes for other numbers too.. leaving the most significant digit , the rest digits are just out of the logic!!
I am using CodeBlocks 12.11 and compiler is GNU GCC compiler.
Here is the output window: [URL] ....
Here is the code:
#include<iostream>
#include<math.h>
using namespace std;
int main() {
int n,a[5],i,t,dec,divisor; // n: storing number; t: copy of n,
[Code] .....
How to get large fatorials in c++...in c++ i am getting the ouput upto maximum of 20!
View 4 Replies View RelatedIn C++, the largest int value is 2147483647. So, an integer larger than this cannot be stored and processed as an integer. Similarly, if the sum or product of two positive integers is greater than 2147483647, the result will be incorrect. One way to store and manipulate large integers is to store each individual digit of the number in an array. Write a program that inputs two positive integers of, at most, 20 digits and outputs the sum of the numbers. If the sum of the numbers has more than 20 digits, output the sum with an appropriate message. Your program must, at least, contain a function to read and store a number into an array and another function to output the sum of the numbers. (Hint: Read numbers as strings and store the digits of the number in the reverse order.)
View 7 Replies View RelatedI have to make a function that can add two numbers of any size. So far I have:
#include <iostream>
#include <string>
struct number {
[Code]....
why I'm getting a segmentation fault? It's really dense because of all the conversions I had to do.
What I want to create is a program that sorts through a huge list (millions of lines).
I want it to get rid of any line that contains a word that isn't in an English dictionary.
Example list:
00sdfdsf
ahdadsg
angel
ksjflsjdf
green
green000
carrot
and it would go through millions like that, giving me only:
angel
green
carrot
as my new list.
How could I go about this? What extra programs would I need?
My programs gives a segmentation fault for large n (n=9999999). It works fine for small n. Where n = total numbers to sort
List<long>* Merge(List<long> *ParentList)
{
if(ParentList->length()==1)
{
[Code]....
I have designed a code and still i dont get the desired output ....
#include <iostream>
using namespace std;
int fact(int,int);
int arr[200]={1};
int main() {
int n,t,len=0,i=0,j,a;
cin>>t;
[Code] ....
My code handles smaller numbers well enough, but I need the program to be able at least factor 100!.
#include <stdio.h>
void factorialOutput(unsigned int &n, int fac[]);
unsigned long long factorial(int n);
int main(int argc, const char * argv[]) {
unsigned int t = 0;
int n[101];
[Code] ......
Any way to create a very large 2 dimensional array. I am talking in the order of :
int sl[7000][5000];
I am new to C++. Also is there a better way than arrays to handle such a large amount of integers.
Would it be possible (and how) to use extremely large integers in a C++ program (such as 20 million digits)?
View 7 Replies View RelatedI have a massive text file containing many thousands of directory and file names with / at the root, like so:
/dir/
/dir/dir/
/dir/dir/dir/
/file
/dir/file
/dir/dir/file
/dir/dir/dir/file
I need to parse the file in such a way that I can create a filesystem hierarchy as if I were enumerating files/directories. Ultimately I want to add these to a tree gui control with everything under its proper node without duplicating anything. It should look roughly like so:
dir
-file
-dir
-file
-dir
-file
I can open the file and add nodes/children to the tree control but how should I go about doing the actual parsing? How can I find a filename and say "this belongs under this node"? I want to do this efficient as possible even if I must use multiple threads.
So the question is this [URL] .....
My code is this:
#include <iostream>
#include<cmath>
using namespace std;
int main(int argc, char *argv[]) {
long double div;
//div=((1e+9)+7);
[Code] .....
The problem is when the hackerrank inputs the following:
10
5351871996120528
2248813659738258
2494359640703601
6044763399160734
3271269997212342
4276346434761561
2372239019637533
5624204919070546
9493965694520825
8629828692375133
My code gives the wrong output.
The output is supposed to be
578351320
404664464
20752136
999516029
743537718
323730244
174995256
593331567
136582381
305527433
So what changes should I make to get my code give the correct output.
So I'm attempting to write a program that will parse through a large file (genome sequences) and I'm basically wondering what options I should consider if I wanted to either:
a) store the entire genome in memory and then parse through it
b) parse through a file in small portions
If I go with "a", should I just read a file into a vector and then parse through it? And if I go with "b" would I just use an input/output stream?
My problem is my edit distance values are stored in a 2d array of ints and exported to a .csv and the ones at the end are rather LARGE.
The the edit distance max should be around 2000 but i am getting values of 1-100million, the weird thing is that I have checked back through my function and tested various parts of it and still dont understand where it is going wrong i thought it could be my memcpy and memmove parts but i have had no luck.
I've written a Hexadecimal/ASCII chart, and would like to be able to show a larger version of the selected ASCII on screen. Is there a way to read the individual lines of bytes that make up a letter/symbol/number to show on screen.
|0|0|0|0|0|0|0|0| = 0
|0|1|0|0|0|0|1|0| = 66 O O ( These 'O' represent ASCII 219 )
|0|0|1|0|0|1|0|0| = 36 O O
|0|0|0|1|1|0|0|0| = 24 OO
|0|0|0|1|1|0|0|0| = 24 OO
|0|0|1|0|0|1|0|0| = 36 O O
|0|1|0|0|0|0|1|0| = 66 O O
|0|0|0|0|0|0|0|0| = 0
To make a large graphic X.
I'm using Microsoft 2012 Express, in the console. I don't feel comfortable yet programming in Windows mode.