ZOJ-2529

来源:互联网 发布:淘宝怎么设置客服旺旺 编辑:程序博客网 时间:2024/06/07 05:40

超级超级郁闷。。一道水题交了一晚上的错误,我至今都没明白到底错在哪。。该找的测试数据也都找过验证了,还是错,真心无语了,用JAVA重写就AC了,真是莫大的讽刺!!!完全一模一样的逻辑,算了。。不浪费时间在这上面了

import java.util.Scanner;public class Main{public static void main(String[] args){int prime[] = { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47,53, 59, 61, 67, 71, 73, 79, 83, 89, 97 };Scanner sc = new Scanner(System.in);while (sc.hasNext()){String[] ss = sc.nextLine().split(" ");String[] ss1 = ss[0].split(",");String[] ss2 = ss[1].split(",");int[] a = new int[ss1.length];int[] b = new int[ss2.length];for (int i = 0; i < a.length; i++)a[i] = Integer.parseInt(ss1[ss1.length - 1 - i]);for (int i = 0; i < b.length; i++)b[i] = Integer.parseInt(ss2[ss2.length - 1 - i]);int l = a.length > b.length ? a.length : b.length;int[] r = new int[l + 1];int prev = 0;int i;for (i = 0; i < l; i++){int i1 = i < a.length ? a[i] : 0;int i2 = i < b.length ? b[i] : 0;int res = i1 + i2 + prev;prev = res >= prime[i] ? 1 : 0;r[i] = prev > 0 ? res - prime[i] : res;}if (prev > 0)r[i] = prev;i = l;while (i >= 0 && r[i] == 0)i--;if (i == -1)System.out.println("0");else{for (; i >= 0; i--)System.out.format(i > 0 ? "%d," : "%d", r[i]);System.out.println();}}}}


想了想还是把WA的代码附上吧,找了几小时都找不出错在哪

/* * * fucking Wrong Answer!!!!!*/#include<stdio.h>#include<string.h>int main(){    int prime[] =            { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59,              61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113 };    int a[100], b[100], r[100];    char s[512];    while (gets(s) != NULL)    {        memset(a, 0, sizeof(a));        memset(b, 0, sizeof(b));        memset(r, 0, sizeof(r));        int i, number = 0, al = 0, bl = 0;        for (i = 0; s[i] != ' '; i++)        {            if (s[i] == ',')            {                a[al++] = number;                number = 0;            }            else                number = number * 10 + s[i] - '0';        }        a[al++] = number;        number = 0;        for (i++; s[i] != '\0'; i++)        {            if (s[i] == ',')            {                b[bl++] = number;                number = 0;            }            else                number = number * 10 + s[i] - '0';        }        b[bl++] = number;        int prev = 0;        for (i = 0; al - 1 - i >= 0 || bl - 1 - i >= 0; i++)        {            int aa = al - 1 - i >= 0 ? a[al - 1 - i] : 0;            int bb = bl - 1 - i >= 0 ? b[bl - 1 - i] : 0;            int res = aa + bb + prev;            prev = res / prime[i];            r[i] = res % prime[i];        }        if (prev)            r[i++] = prev;        while (i >= 1 && r[i - 1] == 0)            i--;        if (!i)            putchar('0');        else            for (number = i - 1; number >= 0; number--)                printf(number ? "%d," : "%d", r[number]);        putchar('\n');    }    return 0;}


0 0
原创粉丝点击