1010 一元多项式求导 (25)(25 分)小心坑点!!

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38851184/article/details/83898349

题目我就不放了,相信大家都知道了。这道题有几个隐藏的坑的点。

1、输入问题,该题的输入并非是按回车后数据输入完毕也不是给定数据长度,而是输入到文件末尾。有种解决方式是用while(!=EOF)。EOF代表的是文件结束符。那么我们写这道题还要从文件进行输入吗?其实不用的,我们在本地上写完代码自己测试时,如果是Linux系统,按ctrl+D,windows系统下先按一个回车,在按ctrl+z,最后在按一个回车就好了。

2、输出的格式,相信已经不陌生了,这里就不再多说。

3、这个坑了我好久啊,具体是“导数多项式非零项的系数和指数”,也就是说,如果输入项的指数是0,那么该项不输出,直接pass;如果输入的是 0 0 ,那么直接输出0 0 .

被坑了好几次后终于通过的代码。由于个人正在学结构体,所以用结构体解了这道题。

#include <bits/stdc++.h>
#include <cstdio>
#include <stdlib.h>
using namespace std;
const int maxn = 1e5+10;
struct node
{
    int xishu;
    int exp;
} nn[maxn];
int main()
{
    char ch[maxn];
    int n,m,cnt = 0;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        nn[cnt].xishu = n;
        nn[cnt].exp = m;
        cnt++;
    }
    if(cnt == 1 && nn[0].exp==0 )
    {
        cout<<"0 0"<<endl;
        return 0;
    }
    cout<<nn[0].exp*nn[0].xishu<<" "<<nn[0].exp-1;
    for(int i=1; i<cnt; i++)
    {
        if(nn[i].exp!=0)
        {
            cout<<" "<<nn[i].exp*nn[i].xishu<<" "<<nn[i].exp-1;
        }
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_38851184/article/details/83898349
今日推荐