Advertisement
Guest User

Untitled

a guest
Oct 20th, 2016
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int raiz (int n) {
  6.     if(n==0)
  7.         return 0;
  8.     int l = 1;
  9.     int r = n;
  10.     int meio = (l+r)/2;
  11.     while (r - l > 1) {
  12.         if (meio*meio == n)
  13.             return meio;
  14.         if (meio*meio > n)
  15.             r = meio;
  16.         else
  17.             l = meio;
  18.         meio = (l+r)/2;
  19.     }
  20.     int aux1 = r*r;
  21.     if ((n-aux1) > 0)
  22.         return r;
  23.     return l;
  24. }
  25. void teta1(int n){
  26.     int x=0, y=0, rden, quadradoanterior, quadradoposterior;
  27.     rden = raiz(n);
  28.     quadradoanterior = rden*rden;
  29.     quadradoposterior = (rden+1)*(rden+1);
  30.     if(raiz(n)%2==0){
  31.         if(n <= (quadradoanterior+quadradoposterior)/2){
  32.             x=(n-quadradoanterior)-rden/2;
  33.             y=-(rden/2);
  34.         }
  35.         else{
  36.             x=raiz(quadradoposterior)/2;
  37.             y=((raiz(quadradoposterior)/2)+1)-(quadradoposterior-n);
  38.         }
  39.     }
  40.     else{
  41.         if(n < (quadradoanterior+quadradoposterior)/2){
  42.             x=(raiz(quadradoanterior)/2)-(n-quadradoanterior);
  43.             y=(raiz(quadradoanterior)/2)+1;
  44.         }
  45.         else{
  46.             x=-(raiz(quadradoposterior)/2);
  47.             y=-(raiz(quadradoposterior)/2)+(quadradoposterior-n);
  48.         }
  49.     }
  50.     printf("Coordenadas: (%i,%i)\n", x, y);
  51. }
  52. int main(){
  53.     int n;
  54.     while(n>=0){
  55.         printf("Digite um numero da seguencia: ");
  56.         scanf("%i", &n);
  57.         teta1(n);
  58.     }
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement