economics

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ economics ] in KIDS
글 쓴 이(By): pictor (홍헌수)
날 짜 (Date): 1999년 11월 26일 금요일 오전 09시 29분 25초
제 목(Title): 20일 이격도---웃기는 짬뽕


#include <stdio.h>

int       pr_twenty       = 94131;
int       pr_max               = 99265;
int       pr_min              = 96534;
int       pr_fin       = 97271;

#define MAX       13
#define UNIT       3
#define HALF       (UNIT * 50)
#define ROUNDUP(x, y) ((((x) + (y) - 1)/(y)) * (y))

int       pivot_basis, pivot_pr[4], pivot_offset[4];
char       *pivot_names[] = {
       "2nd supp",
       "1st supp",
       "1st resi",
       "2nd resi"
};

char *
get_name(int offset)
{
       int       i;

       for (i=0; i < 4; i++)
              if (pivot_offset[i] == offset)
                     return pivot_names[i];
       return "";
}

int
main(int argc, char *argv[])
{
       int       i;
       int       val[2], diff[2], off[2], per[2];
       int       temp;
       char       *name[2], sign;


       printf("%10d.%02d = 20 line\n\n", pr_twenty/ 100, pr_twenty % 100);
       pivot_basis = (pr_max + pr_min + pr_fin) / 3;
       pivot_pr[0] =  pivot_basis - pr_max + pr_min;
       pivot_pr[1] =  2 * pivot_basis - pr_max;
       pivot_pr[2] =  2 * pivot_basis - pr_min;
       pivot_pr[3] =  pivot_basis + pr_max - pr_min;

       for (i=3; i >= 0; i--) {
              temp = pivot_offset[i] = pivot_pr[i] - pr_fin;
              sign = (temp > 0) ? '+' : '-';
              temp = (temp > 0) ? temp : -temp;
              printf("%10d.%02d :   %c%2d.%02d : %s\n",
                     pivot_pr[i]/ 100, pivot_pr[i] % 100,
                     sign,
                     temp / 100, temp % 100,
                     pivot_names[i]);
              if (pivot_offset[i] > 0)
                     pivot_offset[i] =
                            ROUNDUP(pivot_offset[i] - HALF, HALF*2);
              else {
                     pivot_offset[i] =
                            -ROUNDUP(-pivot_offset[i] - HALF, HALF*2);
              }
       }
       printf("\n");

       for (i=0; i <= MAX; i++) {
              diff[0] = UNIT * (i - MAX);
              off[0] = 100 * diff[0] + pr_fin;
              val[0] =  pr_twenty * 19 + off[0];
              val[0] /= 20;
              per[0] = off[0] * 10000 / val[0];
              name[0] = get_name(100 * diff[0]);

              diff[1] = UNIT * i;
              off[1] = 100 * diff[1] + pr_fin;
              val[1] =  pr_twenty * 19 + off[1];
              val[1] /= 20;
              per[1] = off[1] * 10000 / val[1];
              name[1] = get_name(100 * diff[1]);

              printf("%4d.%04d %4d.%02d %4d %8s  |  ",
                     per[0]/10000, per[0] %10000,
                     off[0]/100, off[0]%100,
                     diff[0], name[0]);

              printf("%8s %4d %4d.%02d %4d.%04d \n",
                     name[1], diff[1],
                     off[1]/100, off[1]%100,
                     per[1]/10000, per[1] %10000);
       }
       return 0;
}
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.