码迷,mamicode.com
首页 > 其他好文 > 详细

PAT:1010. 一元多项式求导 (25) AC

时间:2015-03-07 15:27:26      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:

#include<stdio.h>
#include<stdlib.h>
#include<algorithm>
using namespace std;
int main()
{
  int arr[2111];
  fill(arr,arr+2111,0);
  int n=0,tmp;
  while(scanf("%d",&tmp)!=EOF)      //存储系数和指数,下标从0开始偶数为系数,奇数为指数
    arr[n++]=tmp;
  for(int i=0 ; i<n ; i+=2)
  {
    if(arr[i+1]==0)            //指数为0,导数就为0,无需计算
      arr[i]=0;
    else
    {
      arr[i]*=arr[i+1];        //求导
    --arr[i+1];
    }
  }
  int cnt=0;        //【skill】统计系数不为0的个数,控制空格输出
  for(int i=0 ; i<n ; i+=2)
    if(arr[i]!=0)
      ++cnt;
  for(int i=0 ; i<n ; i+=2)
  {
    if(arr[i+1]==0)              //x的指数为0的时候只输出系数,而且系数为0的时候输出本身就是0,不为0的时候就输出系数,整合在一个式子中
  {
    if(arr[i]!=0 || n==2)      //系数为0,指数不为0,输出%d 0;只有一个常数的时候,输出0 0;
    {
      printf("%d 0",arr[i]);
      --cnt;
    }
  }
  else
  {
      printf("%d %d",arr[i],arr[i+1]);  //指数不为0的时候,输出系数和指数
    --cnt;
  }
    if(cnt>0)                //判断是否插入空格      不能写成!=0  如果结果只有0 0,上面输出会变成-1,到不了0,格式错误
    printf(" ");
  }
  printf("\n");
  system("pause");
  return 0;
}

PAT:1010. 一元多项式求导 (25) AC

标签:

原文地址:http://www.cnblogs.com/Evence/p/4320360.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!