tengo este codigo que funciona para la mayoriua de los inputs pero hay algunos para los que me regresa error, como por ejemplo para este input:
" -1000000000000000000 1 1000000000000000000 "
#include <iostream>
#include <cstdio>
using namespace std;
int x,y,m;
int aux=0;
int toPerfect(int a,int b,int per){
if(a >= per || b >= per){
aux=0;
}else if(a<=0 && b<=0){
aux = -1;
}else{
while(a < per && b < per){
if(a > b){
b = b+a;
}else{
a = a+b;
}
aux++;
}
}
return aux;
}
int main(){
cin >>x>>y>>m;
cout << toPerfect(x,y,m) << endl;
cin.get();
}
son números demasiado grandes, una variable tipo int no admite ese tipo de valores, para eso usa long o arreglos o punteros (bueno es lo mismo pero diferente :laugh: :silbar:) para esos valores tan grandes.
Consulta esta tabla:
http://www.zator.com/Cpp/E2_2_4.htm
slds
Cita de: dato000 en 23 Enero 2014, 16:48 PM
son números demasiado grandes, una variable tipo int no admite ese tipo de valores, para eso usa long o arreglos o punteros (bueno es lo mismo pero diferente :laugh: :silbar:) para esos valores tan grandes.
Consulta esta tabla:
http://www.zator.com/Cpp/E2_2_4.htm
slds
Pero al usar "long" o "long long int" en vez de "int" simplemente no termina el programa, se queda en stand-by .
cambiaste también las funciones??? también deben ser de un tipo acorde a los valores que manejas.
yes i change it. this is my code now but also didnt work.
#include <iostream>
#include <stdio.h>
using namespace std;
long long int n,k,cont=0;
long long int aux;
int main(){
cin >>n>>k;
//imprime impares hasta n
for(long long int i=1;i<=n;i++){
if( i%2 != 0){
//cout << i << endl;
cont++;
if(cont == k){
aux=i;
}
}
}
//imprime pares hasta n
for(long long int j=1;j<=n;j++){
if( j%2 == 0){
//cout << j << endl;
cont++;
if(cont == k){
aux=j;
}
}
}
cout << aux << endl;
cin.get();
}
este es totalmente diferente al inicial.
si lo cambie, usando ahora "long long int" en vez de "int" pero igual no me funciona.
Cita de: letisen en 23 Enero 2014, 18:12 PM
si lo cambie, usando ahora "long long int" en vez de "int" pero igual no me funciona.
En absoluto, no utilizas la función toPerfect en este nuevo main.
Sigue usando main, y cuando quieras usar valores gigantezcos, almacena cada digito en un arreglo y lo conviertes con atoi, caracter por caracter.