(ACM)3600 root of the problem

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

int jegop(int a, int b)

{

int i,c;

c=a;

for( i = 0 ; i < b - 1 ; i++ ){

c = c * a;

}

return c;

}

int main (int argc, const char * argv[])
{
int b=500;
int n=5;
int num=0;
vector<int> result;
while((b !=0 && n !=0) &&(b>=1 && b <=1000000 && n>=1 && n<=9)){

cin >> b >> n;

if((b==0 && n==0)) break;
if( b < 1 || b > 1000000 || n <1 || n >9) break;
while( jegop(num,n) < b){
num++;

}

if( jegop(num,n)-b > b-jegop(num-1,n))cout << num-1 <<endl;
else if ( jegop(num,n)-b < b-jegop(num-1,n)) cout << num <<endl;
else if( jegop(num,n)-b == b-jegop(num-1,n)) cout << num-1 <<" " << num <<endl;

}
//for(size_t i=0 ; i < result.size() ; i++) cout << result[i]<<endl;

}


i don't know why they say this answer is wrong
Your code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>
#include <vector>
using namespace std;

int jegop(int a, int b) {
   int i,c;
   c=a;
   for( i = 0 ; i < b - 1 ; i++ ){
      c = c * a;
   }

   return c;
}

int main (int argc, const char * argv[])
{
   int b=500;
   int n=5;
   int num=0;
   vector<int> result;
   while((b !=0 && n !=0) &&(b>=1 && b <=1000000 && n>=1 && n<=9)){
      cin >> b >> n;

      if((b==0 && n==0)) break;
      if( b < 1 || b > 1000000 || n <1 || n >9) break;
      while( jegop(num,n) < b){
         num++;

      }

      if( jegop(num,n)-b > b-jegop(num-1,n))cout << num-1 <<endl;
      else if ( jegop(num,n)-b < b-jegop(num-1,n)) cout << num <<endl;
      else if( jegop(num,n)-b == b-jegop(num-1,n)) cout << num-1 <<" " << num <<endl;

   }
   //for(size_t i=0 ; i < result.size() ; i++) cout << result[i]<<endl;
}


Try this input
4 3
1000000 5 
4 3
0 0
Last edited on
Topic archived. No new replies allowed.