这道题的题意 想必大家都能看懂吧 就是简单的合并同类项。
这道题的主要难点在于output里面的“(其中q, w是合并同类项后的值,若w是负数则把+号变成-号。若是0则不输出此项(ps:全是0需要输出0),包括运算符)”这句话。
只要你搞懂了这句话,这道题你基本上就没有任何的问题了。这句话的意思就是如果你q,w都是0的话,那么只输出0,如果w是0的话,只输出q,如果q是0的话,输出wx,否则输出q+wx。
如果有哪个地方没理解的可以问一下我或者苏桐渤学长这些人(希望苏桐渤学长看到以后不会打死我,希望我没事。)
接下来是题目的代码:第一种是比较复杂的,它分为5种情况:1.q不等于0,w大于0;2.q不等于0,w小于0;3.q不等于0,w等于0;4,q等于0,w不等于0;5,q,w都等于0.
代码如下:
1 1 #include2 2 int main() { 3 3 int a, b, c, d,q,w; 4 4 while (scanf("%d%d%d%d", &a, &b, &c, &d) != EOF) { 5 5 q = a + c; 6 6 w = b + d; 7 7 if (q != 0 && w > 0)printf("%d+%dx\n", q, w); 8 8 else if (q != 0 && w < 0) { 9 9 w = -w; 10 10 printf("%d-%dx\n", q, w); 11 11 } 12 12 else if (q != 0 && w == 0) printf("%d\n", q); 13 13 else if (q == 0 && w != 0) printf("%dx\n", w); 14 14 else if (q == 0 && w == 0)printf("0\n"); 15 15 } 16 16 }
接下来是简单的,这一种只要考虑到3种情况:1,w等于0;2,q等于0;3,w,q都不等于0;
因为上一个代码,q不等于0的话,w正的时候,你输出的话,只会输出qwx,就没有+号了,所以我们需要用到%+d这个神奇的东西了;
代码如下:
1 #include2 int main(){ 3 int a,b,c,d; 4 while(~scanf("%d%d%d%d",&a,&b,&c,&d)){ 5 int q=a+c; 6 int w=b+d; 7 if(w==0)printf("%d\n",q); 8 else if(q==0)printf("%dx\n",w); 9 else printf("%d%+dx\n",q,w); 10 } 11 }
最后,我在这里祝大家身体健康,刷题愉快(应该不会有人想打我吧QAQ)
神兽压场
1 /**********/**********/**********//**********//**********//**********//**********/ 2