zoukankan      html  css  js  c++  java
  • 【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 }
  • 相关阅读:
    vlc音视频开发(二)环境搭建(VS篇)
    vlc音视频开发(一)环境搭建(qt篇)
    Qt国际化
    Qt解析王者荣耀英雄JSON文件
    Qt使用spdlog日志
    windows核心编程之多进程多线程,线程的同步互斥
    第十八关——写在最后
    第十七关——搜索优化
    第十六关——动态规划
    第十五关——网络流
  • 原文地址:https://www.cnblogs.com/bombe1013/p/3616203.html
Copyright © 2011-2022 走看看