邹平建设网站,iis 会影响 网站 速度,关闭wordpress评论 通过修改代码的方法,深圳光明新区网站建设题目#xff1a; 设计函数求一元多项式的导数。#xff08;注#xff1a;xn#xff08;n为整数#xff09;的一阶导数为nxn−1。#xff09;
输入格式:
以指数递降方式输入多项式非零项系数和指数#xff08;绝对值均为不超过 1000 的整数#xff09;。数字间以空格分…题目 设计函数求一元多项式的导数。注xnn为整数的一阶导数为nxn−1。
输入格式:
以指数递降方式输入多项式非零项系数和指数绝对值均为不超过 1000 的整数。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0但是表示为 0 0。
输入样例:
3 4 -5 2 6 1 -2 0输出样例:
12 3 -10 1 6 0代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 解题思路
这道题看起来很复杂其实很简单但这都要基于一个前提就是你知道scanf的返回值。 scanf返回值如果成功该函数返回成功匹配和赋值的个数。如果到达文件末尾或发生读错误则返回 EOF。 我们知道当scanf到达文件末尾时返回EOF那么我们只需要用一个循环遍历整个多项式在一轮循环中我们需要用两个遍历来接收多项式其中一项的系数和指数并且打印输出该项求导后的系数和指数。当遇到它的指数为0时就不打印因为常数的导数是0。
注意 这里题目中要求还要考虑0多项式也就是输入为n 0n为非0整数输出要为0 0那就是不打印的情况就要输出0 0。这里我们可以设置一个flag初始值为1只要打印了的就设置为0整个循环下来后如果flag的值还是为1表明没有打印输出则打印输出0 0。 AC代码
#include cstdioint main()
{int m 0;int n 0;int flag 1;while (scanf(%d %d, m, n) ! EOF){if (n ! 0){if (1 flag)//如果是第一次打印{printf(%d %d, m * n , n - 1);flag 0;}else//如果不是第一次打印则需要在之前打印一个空格{printf( %d %d, m * n, n - 1);}}}if (1 flag)//判断是否之前有过打印如果没有打印则输出0 0{printf(0 0);}return 0;
}