Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.45 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.InputStreamReader;
  3. import java.util.StringTokenizer;
  4.  
  5. public class Range {
  6.        
  7.     static int proveri(double N, long A, long B) {
  8.          if(B-A<10000000)
  9.         {
  10.              //System.out.println(A);
  11.              ///System.out.println(B);
  12.                 /*if( (B*B+zbirCifri(B)+200*B==N) || (A*A+zbirCifri(A)+200*A==N) )
  13.                 {
  14.                         if(B*B+zbirCifri(B)+200*B==N)
  15.                                 System.out.println(B);
  16.                         if(A*A+zbirCifri(A)+200*A==N)
  17.                                 System.out.println(A);
  18.                         return 1;
  19.                 }
  20.                        
  21.                 else
  22.                         return -1;
  23.                 */
  24.              //int k=0;
  25.              for(long i=A;i<=B;i++)
  26.              {
  27.                  //System.out.println("Forr");
  28.                  double k = i;
  29.                  if(k*k+zbirCifri(i)+200*k==N)
  30.                      return (int)i;
  31.              }
  32.                  return -1;
  33.         }
  34.         else
  35.         {
  36.                 double n=(B+A)/2;
  37.                 if((n<A)&&(n>B))
  38.                         return -1;
  39.                 if(n*n+zbirCifri((long)n)+200*n==N)
  40.                 {
  41.                         System.out.println(n);
  42.                         System.out.println("Dolu");
  43.                         return 1;
  44.                        
  45.                        
  46.                 }
  47.                 else if(n*n+zbirCifri((long)n)+200*n<N)
  48.                         return proveri(N, (long)n+1,B);
  49.                 else
  50.                         return proveri(N, A,(long)n);
  51.                
  52.         }
  53.         // Vasiot kod tuka
  54.     }
  55.     static long zbirCifri(long x)
  56.     {
  57.         long sum=0;
  58.         while(x>0)
  59.         {
  60.                 sum+=x%10;
  61.                 x/=10;
  62.         }
  63.         return sum;
  64.     }
  65.    
  66.         // Vasiot kod tuka
  67.    
  68.     public static void main(String[] args) throws Exception {
  69.         int i,j,k;
  70.        
  71.         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  72.        
  73.         double N = Double.parseDouble(br.readLine());
  74.        
  75.         StringTokenizer st = new StringTokenizer(br.readLine());
  76.         long A =Long.parseLong(st.nextToken());
  77.         long B =Long.parseLong(st.nextToken());
  78.        
  79.         int res = proveri(N, A, B);
  80.         System.out.println(res);
  81.        
  82.         br.close();
  83.        
  84.     }
  85.    
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement