Pereiti prie turinio

C++ uždavinys reikia pagalbos


Rekomenduojami pranešimai

Sveiki, sąlyga iš spoj.com:

A positive integer is called a palindrome if its representation in the decimal system is the same when read from left to right and from right to left. For a given positive integer K of not more than 1000000 digits, write the value of the smallest palindrome larger than K to output. Numbers are always displayed without leading zeros.

 

Input

 

The first line contains integer t, the number of test cases. Integers K are given in the next t lines.

 

Output

 

For each K, output the smallest palindrome larger than K.

 

Example

 

Input:

2

808

2133

 

Output:

818

2222

 

Mano kodas:

 

#include <iostream>
#include <vector>
#include <sstream>
using namespace std;

bool isPolindrome(unsigned long long int num);
string getReversed(string orig);
string intToString(unsigned long long int num);

int main(){
unsigned long long casesNo, input;
vector<unsigned long long int> answers;
cin >> casesNo;
for (unsigned long long i = 0; i < casesNo; i++){
	cin >> input; input++;
	while (!isPolindrome(input)) input++;
	answers.push_back(input);
}
for (unsigned long long int i = 0; i < casesNo; i++){
	cout << answers[i] << endl;;
}
return 0;
}

bool isPolindrome(unsigned long long int num){
string orig = intToString(num);
string reversed = getReversed(orig);
if (orig == reversed) return true;
return false;
}

string getReversed(string orig){
orig = string(orig.rbegin(), orig.rend());
return orig;
}

string intToString(unsigned long long int num){
stringstream ss;
ss << num;
return ss.str();
}

 

Pabandziau įvairius variantus, atrodo viskas gerai, tačiau SPOJ.com rodo "wrong answer", kas negerai? Dėkui.

Redagavo Sirius
Nuoroda į pranešimą
Dalintis kituose puslapiuose

not more than 1000000 digits,!!!

tai reiskia i long long toli grazu nesutalpinsi , ir nei joki kita primityvu tipa :)

o ir siaip 1000000 skaitmenu skaiciu tiesiog incrementinant ir tikrinant kogeru uztruktum pora tukstantmeciu kol atrastum tinkama varianta

teks ieskotis kito sprendimo

Redagavo alexcoldberg
Nuoroda į pranešimą
Dalintis kituose puslapiuose

not more than 1000000 digits,!!!

tai reiskia i long long toli grazu nesutalpinsi , ir nei joki kita primityvu tipa :)

o ir siaip 1000000 skaitmenu skaiciu tiesiog incrementinant ir tikrinant kogeru uztruktum pora tukstantmeciu kol atrastum tinkama varianta

teks ieskotis kito sprendimo

Taip išeina, kad įvestyje didžiausia reikšmė gali būti, pvz, 10^1000000? Tuomet gal šią užduotį, bent kol kas, praleisiu. Dėkui už atsakymą.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...