题目内容: 一个多项式可以表达为x的各次幂与系数乘积的和,比如: 2x6+3x5+12x3+6x+20 现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。 程序要处理的幂最大为100。
输入格式: 总共要输入两个多项式,每个多项式的输入格式如下: 每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是0次幂。 注意第一行和最后一行之间不一定按照幂次降低顺序排列;如果某个幂次的系数为0,就不出现在输入数据中了;0次幂的系数为0时还是会出现在输入数据中。
输出格式: 从最高幂开始依次降到0幂,如: 2x6+3x5+12x3-6x+20 注意其中的x是小写字母x,而且所有的符号之间都没有空格,如果某个幂的系数为0则不需要有那项。
输入样例: 6 2 5 3 3 12 1 6 0 20 6 2 5 3 2 12 1 6 0 20
输出样例: 4x6+6x5+12x3+12x2+12x+40 时间限制:500ms内存限制:32000kb
package javamooctext; import java.util.Scanner; public class text1 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); int[][] num = new int[2][120]; int i,j,size,New,max=0,tag=0; for(i=0;i<2;i++){//输入两个多项式 size = in.nextInt();//第一项为最高项 if(max<size) max=size; num[i][size]=in.nextInt(); if(size==0)//第一项为0,直接输入下一个多项式 continue; do {//输入直到最终为0项 New = in.nextInt(); num[i][New]+=in.nextInt(); } while (New!=0); } /* ****输出**** */ //(num[0][i]+num[1][i])为系数 ,i为指数 我选择所有符号数字分开输出的办法 for(i=max;i>=0;i--){ if(max==0)//只有常数项,输出,结束 {System.out.print((num[0][i]+num[1][i]));break;} if((num[0][i]+num[1][i])!=0){//系数不为0 if(tag==1)//tag为符号位置,tag为0 即 这是第一项,不考虑+号 if((num[0][i]+num[1][i])>=0)//非第一项 输出加号 System.out.print("+"); if((num[0][i]+num[1][i])!=1||i==0)//输出系数,系数为1,不输出,但是常数项的1输出 System.out.print(num[0][i]+num[1][i]); if(i!=0)//不为常数项,输出x System.out.print("x"); if(i!=0&&i!=1)//不为常数项和x的一次方,输出次数 System.out.print(i); tag=1;//有过一次输出,即 可以输出符号 } if(tag==0&&i==0&&(num[0][i]+num[1][i])==0)//如果 只有一项常数项 且常数项为0 单独处理 System.out.print((num[0][i]+num[1][i])); } System.out.println(); } }2井字棋(5分) 题目内容: 嗯,就是视频里说的那个井字棋。视频里说了它的基本思路,现在,需要你把它全部实现出来啦。 你的程序先要读入一个整数n,范围是[3,100],这表示井字棋棋盘的边长。比如n=3就表示是一个3x3的棋盘。然后,要读入n行,每行n个数字,每个数字是1或0,依次表示[0,0]到[n-1,n-1]位置上的棋子。1表示X,0表示O(大写字母O)。 你的程序要判断其中是否存在某一方获胜,获胜的条件是存在整行或整列或整条对角线或整条反对角线上是相同的棋子。如果存在,则输出代表获胜一方字母:X或O(大写字母X或O);如果没有任何一方获胜,则输出NIL(三个大写字母)。 注意:所给的棋盘上的棋子分布可能出现同一个棋子有多处满足获胜的条件,但是不会出现两种棋子都获胜的情况。
输入格式: 一个代表棋盘大小的数字n,后面跟上nxn个数字。
输出格式: 三种输出之一: X O NIL 均为大写字母。
输入样例: 4 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1
输出样例: X
时间限制:500ms内存限制:32000kb
package javamooctext; import java.util.*; public class text52 { public static void main(String[] args){ Scanner in=new Scanner(System.in); int n=in.nextInt();boolean t=false;int numx=0,numo=0;int tag=-1; int[][] play=new int[n][n]; for(int i=0;i<play.length;i++){ for(int j=0;j<play[i].length;j++){ play[i][j]=in.nextInt(); } } // for(int i=0;i<play.length;i++){ // for(int j=0;j<play[i].length;j++){ // System.out.print(play[i][j]); // if(j!=play[i].length) // System.out.print(""); // } // System.out.println(); // } for(int k=0;k<n;k++){ if(play[k][k]==1) numx++; else numo++; } if(numx==n) tag=1; else if(numo==n) tag=0; numx=0;numo=0; for(int k=0;k<n;k++){ if(play[k][n-k-1]==1) numx++; else numo++; } if(numx==n) tag=1; else if(numo==n) tag=0; for(int i=0;i<n;i++){ numx=0;numo=0; for(int k=0;k<n;k++){ if(play[i][k]==1) numx++; else numo++; } if(numx==n) tag=1; else if(numo==n) tag=0; } for(int i=0;i<n;i++){ numx=0;numo=0; for(int k=0;k<n;k++){ if(play[k][i]==1) numx++; else numo++; } if(numx==n) tag=1; else if(numo==n) tag=0; } if(tag==1) System.out.println('X'); else if(tag==0) System.out.println('O'); else System.out.println("NIL"); } }