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("\n");
  system("pause");
  return 0;
}
时间: 2024-10-13 17:32:30

PAT:1010. 一元多项式求导 (25) AC的相关文章

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

设计函数求一元多项式的导数. 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意"零多项式"的指数和系数都是0,但是表示为"0 0". 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 思路:一次输入两个数a,b按Ctrl+z结束输入.保存在s[b]中,且令s[b]

PAT 乙级 1010 一元多项式求导 (25) C++版

1010. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意"零多项式"的指数和系数都是0,但是表示为"

PAT 1010. 一元多项式求导

1010. 一元多项式求导 (25) 设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意"零多项式"的指数和系数都是0,但是表示为"0 0". 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6

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

#include<stdio.h> #include<stdlib.h> #include<algorithm> using namespace std; int main() { int arr[1111]; fill(arr,arr+1111,0); int n=0,tmp; while(scanf("%d",&tmp)!=EOF) //存储系数和指数,下标从0开始偶数为系数,奇数为指数 arr[n++]=tmp; for(int i=0

1010 一元多项式求导 (25分)

#include<iostream> using namespace std; int main() { int index; int expo; cin>>expo>>index; if(index==0){ cout << "0 0"; return 0; } else cout << index*expo <<" "<<index-1; while(cin>>exp

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

设计函数求一元多项式的导数.(注: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 #includ

1010. 一元多项式求导 (25) (ZJUPAT 数学求导)

题目链接:http://pat.zju.edu.cn/contests/80/1010 设计函数求一元多项式的导数. 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格. 输入样例: 3 4 -5 2 6 1 -2 0 输出样例: 12 3 -10 1 6 0 代码如下: #include <cstdio> #include <cma

PAT——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 package com.ho

1010. 一元多项式求导

1010. 一元多项式求导 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 设计函数求一元多项式的导数. 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数.数字间以空格分隔,但结尾不能有多余空格.注意“零多项式”的指数和系数都是0,但是表示为“0 0”. 输入样例: 3 4 -5 2 6 1 -2 0 输出样例