zoukankan      html  css  js  c++  java
  • PAT (Basic Level) Practise (中文)- 1010. 一元多项式求导 (25)

    http://www.patest.cn/contests/pat-b-practise/1010

    设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)

    输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。

    输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。

    输入样例:

    3 4 -5 2 6 1 -2 0
    

    输出样例:

    12 3 -10 1 6 0


     1 #include<stdio.h>
     2 #include<string.h>
     3 int main()
     4 {
     5     char str[30000];
     6     gets(str);
     7     
     8     int num[1001][2]={{0}};
     9     int iStr=0,k=1;    
    10     while(str[iStr])
    11     {
    12         if(str[iStr]==' ' && str[iStr+1]!=' ')
    13             k++;
    14         iStr++;           
    15     }
    16     k/=2;
    17     char *p=str;
    18     for(int i=0;i<k;i++)
    19     {
    20         sscanf(p,"%d%d",&num[i][0],&num[i][1]);
    21         while(*p && *p!=' ') p++; 
    22         while(*p && *p==' ')p++;
    23         while(*p && *p!=' ') p++; 
    24         while(*p && *p==' ')p++;
    25     }
    26     
    27    // 9    8     2    3    4   1  -1   -1
    28 //72 7 16 1 16 1 6 2 6 2 12 3 12 3 4 0 4 0 -1 -2 -1 -2 1 -2
    29     iStr=0;
    30     for(int i=0;i<k;i++)
    31     { 
    32             num[i][0] *= num[i][1];
    33             num[i][1]--; 
    34             if(num[i][0]==0) num[i][1]=0;
    35             
    36             
    37         if(num[i][0] || !iStr )
    38         {
    39             if(iStr)printf(" %d %d",num[i][0],num[i][1]);
    40             else printf("%d %d",num[i][0],num[i][1]);
    41             iStr++;
    42         }
    43     } 
    44     return 0;
    45 }
  • 相关阅读:
    Spring中的AOP
    P2782 友好城市
    1576 最长严格上升子序列
    1058 合唱队形 2004年NOIP全国联赛提高组
    5294 挖地雷
    1643 线段覆盖 3
    4768 跳石头
    1026 逃跑的拉尔夫
    2727:仙岛求药
    codevs 4888 零件分组
  • 原文地址:https://www.cnblogs.com/asinlzm/p/4463789.html
Copyright © 2011-2022 走看看