zoukankan      html  css  js  c++  java
  • PAT:1010. 一元多项式求导 (25) AC

    #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("
    ");
      system("pause");
      return 0;
    }
  • 相关阅读:
    猿辅导-去除数组中数量大于k的数
    OSI体系结构各层协议
    京东-学生合唱队分组
    146-LRUCache
    76-最长上升子序列
    无序数组中三个数字乘积最大值
    38-字符串的排列
    35-复杂链表的复制
    208-Implement Trie(Prefix Tree)
    69-求一个整数的平方根
  • 原文地址:https://www.cnblogs.com/Evence/p/4320360.html
Copyright © 2011-2022 走看看