• 【HDOJ】1230 火星A+B


    个人觉得这道题没那么水,wa了几次,才发现自己居然没有给srcb数组reset,打错了。搞死啊。

     1 #include <stdio.h>
     2 #include <string.h>
     3 
     4 #define MAXNUM 26
     5 int srca[MAXNUM];
     6 int srcb[MAXNUM];
     7 int isPrime[MAXNUM] = {2, 3, 5, 7, 11,13,17,19,23,29,31,37,41,
     8                        43,47,53,59,61,67,71,73,79,83,89,97,101};
     9 
    10 
    11 void reverse(int a[], int beg, int end) {
    12     int tmp, i, k=beg+end-1;
    13 
    14     for (i=beg; i+i<=k; ++i) {
    15         tmp = a[i];
    16         a[i] = a[k-i];
    17         a[k-i] = tmp;
    18     }
    19 }
    20 
    21 void testsrc(int src[], int len) {
    22     int i;
    23     for (i=0;i<len;++i)
    24         printf("%d ", src[i]);
    25     printf("
    ");
    26 }
    27 
    28 void magicadd(int lena, int lenb) {
    29     int ov = 0;
    30     int i;
    31 
    32     reverse(srca, 0, lena);
    33     reverse(srcb, 0, lenb);
    34 
    35     for (i=0; i<MAXNUM; ++i) {
    36         srca[i] += (srcb[i] + ov);
    37         ov = srca[i] / isPrime[i];
    38         srca[i] = srca[i] % isPrime[i];
    39     }
    40 }
    41 
    42 int main() {
    43     int lena, lenb, flg, tmp;
    44     char ch;
    45     int i;
    46 
    47     while (1) {
    48         memset(srca, 0, sizeof(srca));
    49         memset(srcb, 0, sizeof(srcb));
    50         flg = lena = lenb = tmp = 0;
    51         while (1) {
    52             ch = getchar();
    53             if (ch == ' ') {
    54                 srca[lena++] = tmp;
    55                 flg = 1;
    56                 tmp = 0;
    57             } else if (ch == ',') {
    58                 if (flg)
    59                     srcb[lenb++] = tmp;
    60                 else
    61                     srca[lena++] = tmp;
    62                 tmp = 0;
    63             } else if (ch == '
    ') {
    64                 srcb[lenb++] = tmp;
    65                 break;
    66             } else {
    67                 tmp = tmp*10+ch-'0';
    68             }
    69         }
    70         if (lena==1 && lenb==1 && srca[0]==0 && srcb[0]==0)
    71             break;
    72         magicadd(lena, lenb);
    73         i = MAXNUM-1;
    74         while (srca[i] == 0)
    75             i--;
    76         for (; i>0; i--)
    77             printf("%d,", srca[i]);
    78         printf("%d
    ", srca[0]);
    79     }
    80 
    81     return 0;
    82 }
  • 相关阅读:
    js 生成指定范围之内的随机数
    vue项目在ie浏览器打开做提示
    vue 瀑布流组件
    docker 移动文件到其他目录
    学习hyperf遇到的问题
    Linux 部署elasticsearch
    Git 常用命令
    Linux svn定时更新
    eclipse 导入web项目后,线程假死
    向量基本概念
  • 原文地址:https://www.cnblogs.com/bombe1013/p/3616203.html
Copyright © 2020-2023  润新知