• 团体程序设计天梯赛 L1-009. N个数求和


    易错题

     1 #include <stdio.h> 
     2 #include <stdlib.h>
     3 #include <string.h>
     4 #include <stdbool.h>
     5 
     6 long long gcd(long long a,long long b)
     7 {
     8     long c;
     9     while (b!=0)
    10     {
    11         c=a%b;
    12         a=b;
    13         b=c;
    14     }
    15     return a;
    16 }
    17 
    18 int main()
    19 {
    20     char str[100];
    21     long n,i,j,k;
    22     long long a,b=-1,c,d,e;
    23     scanf("%ld",&n);
    24     while (n)
    25     {
    26         n--;
    27         scanf("%s",str);
    28         if (str[0]=='-')
    29             j=1;
    30         else
    31             j=0;
    32         for (i=j;i<strlen(str);i++)
    33             if (str[i]=='/')
    34                 break;
    35         c=0;
    36         d=0;
    37         for (k=j;k<i;k++)
    38             c=c*10+str[k]-48;
    39         for (k=i+1;k<strlen(str);k++)
    40             d=d*10+str[k]-48;
    41             
    42         e=gcd(c,d);
    43         c=c/e;
    44         d=d/e;
    45                     
    46         if (b==-1)
    47         {
    48             a=c;
    49             b=d;
    50             if (j==1)
    51                 a=-a;
    52             continue;
    53         }
    54         
    55         if (j==1)
    56             c=-c;
    57         e=b*d/gcd(b,d);
    58         a=e/b*a+e/d*c;
    59         b=e;
    60         
    61         e=gcd(abs(a),b);
    62         a=a/e;
    63         b=b/e;
    64     }
    65     if (a<0)
    66     {
    67         printf("-");
    68         a=-a;
    69     }
    70     
    71     c=a/b;
    72     d=a%b;
    73     if (c==0 && d==0)
    74         printf("0");
    75     else if (c==0 && d!=0)
    76         printf("%lld/%lld",d,b);
    77     else if (c!=0 && d==0)
    78         printf("%lld",c);
    79     else
    80         printf("%lld %lld/%lld",c,d,b);
    81     return 0;
    82 }
  • 相关阅读:
    Triangle
    Remove Duplicate Letters
    array 并不会被默认初始化
    Unique Binary Search Trees
    有些障碍的 unique path
    unique paths
    最长增长序列的长度(LIS)
    极其简单的复数类,只是不想再推演一遍复数四则运算
    安卓_11
    安卓_10
  • 原文地址:https://www.cnblogs.com/cmyg/p/8574505.html
Copyright © 2020-2023  润新知