PAT乙级-1010 一元多项式求导

设计函数求一元多项式的导数。(注:x**nn为整数)的一阶导数为nxn−1。)

输入格式:

以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。

输出格式:

以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0

输入样例:

3 4 -5 2 6 1 -2 0
结尾无空行

输出样例:

12 3 -10 1 6 0
结尾无空行

注意事项:

第一个坑:数字之间可能有多个空格 如果你是用Java切割字符串的话

第二个坑:当系数项是0的时候输出0 0 *如:3 4 -5 2 6 1 0 1 对应输出是12 3 -10 1 6 0 0 但是题目给出的输出是 12 3 -10 1 6 0 0

第三个坑:当系数项不是0,指数是0的时候 什么也不输出 *如:3 4 -5 2 6 1 -2 0 对应输出是12 3 -10 1 6 0 (-2 0没对应的数字输出)

第四个坑:当输出多项式是空串的时候要输出0 0 *如:输入只有 -2 0 的时候 输出空串 但是此时必须输出0 0

参考: https://blog.csdn.net/qq_34594236/article/details/51533962

提问:

题目说 :以指数递降方式输入多项式非零项系数和指数 ,那为什么还会存在输入系数项为 0,如果系数为0,那就是0才对

代码:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int x,y;//非零项系数和指数
        String str = "";
        while(sc.hasNext()){
            x = sc.nextInt();
            y = sc.nextInt();
            if(test(x,y) != "")
                str = str + " " + test(x,y); 
        }
        if(str == "")System.out.println("0 0");
        else System.out.println(str.trim());
    }
    public static String test(int x,int y){
        if(x == 0)return "0 0"; //感觉不应该会出现这种情况,输入的是非零项系数,x不应该为0
        if(x != 0 && y == 0) return "";
        return x * y + " " + (y - 1);
    }
}

posted @   黯渊  阅读(29)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示