class Enshu1 {
private static double discriminant(double x, double y, double z){
return y*y-4*x*z;
}
public static void main(String[] arg){
double a=1;b=2;c=3;
Sysmtem.out.print("方程式"+a+"x^2+"+b+"x+"+c+"=0");
System.out.println("の判別式は"+discriminant(a,b,c));
}
}
class Enshu2 {
private static double discriminant(double x, double y, double z){
return y*y-4*x*z;
}
private static boolean hasRealRoots(double x, double y, double z){
return discriminant(x,y,z)>=0;
}
public static void main(String[] arg){
double a=1;b=2;c=3;
Sysmtem.out.print("方程式"+a+"x^2+"+b+"x+"+c+"=0");
if(hasRealRoots(a,b,c)){
System.out.println("は実根を持つ");
}else{
System.out.println("は実根を持たない");
}
}
}
class Enshu3 {
private static double discriminant(double x, double y, double z){
return y*y-4*x*z;
}
private static int numberOfRoots(double x, double y, double z){
if(discriminant(x,y,z)>0){
return 2;
}
if(discriminant(x,y,z)==0){
return 1;
}
return 0;
}
public static void main(String[] arg){
double a=1;b=2;c=3;
double d=b*b-4*a*c;
Sysmtem.out.print("方程式"+a+"x^2+"+b+"x+"+c+"=0");
System.out.println("の実根の数は"+numberOfRoots(a,b,c));
}
}
class Ex1 {
public static void main(String[] arg){
double[] data={3.0,1.0,4.0,1.0,5.0,-1.0};
double sum=0.0;
for(int i=0; data[i]!=-1.0; i++){
sum += data[i];
}
System.out.println(sum);
}
}
class Ex2 {
private static double heron(double a, double b, double c){
double s=(a+b+c)/2;
return Math.sqrt(s*(s-a)*(s-b)*(s-c));
}
public static void main(String[] arg){
double x,y,z;
x=2.0;
y=3.0;
z=4.0;
System.out.print("三辺の長さが "+x+", "+y+", "+z+" の三角形の面積は");
System.out.println(heron(x,y,z));
}
}
class NijiHouteishiki {
private double a;
private double b;
private double c;
public NijiHouteishiki(double a, double b, double c){
this.a=a;
this.b=b;
this.c=c;
}
public String toString(){
return String.format("%f x^2 %+f x %+f = 0",a,b,c);
}
public double discriminant(){
return b*b-4*a*c;
}
}
class Ex3 {
public static void main(String[] arg){
NijiHouteishiki f = new NijiHouteishiki(2.0,5.0,3.0);
System.out.println(f+"の判別式の値は "+f.discriminant());
}
}
class NijiHouteishiki {
private double a;
private double b;
private double c;
public NijiHouteishiki(double a, double b, double c){
this.a=a;
this.b=b;
this.c=c;
}
public String toString(){
return String.format("%f x^2 %+f x %+f = 0",a,b,c);
}
public double discriminant(){
return b*b-4*a*c;
}
public boolean hasRealRoot(){
return discriminant()>=0;
}
}
class Ex4 {
public static void main(String[] arg){
NijiHouteishiki f = new NijiHouteishiki(2.0,5.0,3.0);
System.out.print(f+"は実根を");
if(f.hasRealRoot()){
System.out.println("持つ");
}else{
System.out.println("持たない");
}
}
}
class NijiHouteishiki {
private double a;
private double b;
private double c;
public NijiHouteishiki(double a, double b, double c){
this.a=a;
this.b=b;
this.c=c;
}
public String toString(){
return String.format("%f x^2 %+f x %+f = 0",a,b,c);
}
public double discriminant(){
return b*b-4*a*c;
}
public int numberOfRoots(){
if(discriminant()>0){
return 2;
}
if(discriminant()==0){
return 1;
}
return 0;
}
}
class Ex5 {
public static void main(String[] arg){
NijiHouteishiki f = new NijiHouteishiki(2.0,5.0,3.0);
System.out.println(f+" は "+f.numberOfRoots()+" 個の実根を持つ");
}
}
class Yen {
private int value;
public Yen(int v){
value = v;
}
public int getValue(){
return value;
}
public void setValue(int n){
value = n;
}
public String getSign(){
return "¥";
}
@Override public String toString(){
return getSign()+value;
}
}
class Dollar {
private int value;
public Yen(int v){
value = v;
}
public int getValue(){
return value;
}
public void setValue(int n){
value = n;
}
public String getSign(){
return "$";
}
@Override public String toString(){
return getSign()+value;
}
}
abstract class Money {
abstract public int getValue();
abstract public void setValue(int n);
abstract public String getSign();
@Override
abstract public String toString();
}
class Yen extends Money {
private int value;
public Yen(int v){
value = v;
}
public int getValue(){
return value;
}
public void setValue(int n){
value = n;
}
public String getSign(){
return "¥";
}
@Override
public String toString(){
return getSign()+value;
}
}
class Dollar extends Money {
private int value;
public Dollar(int v){
value = v;
}
public int getValue(){
return value;
}
public void setValue(int n){
value = n;
}
public String getSign(){
return "$";
}
@Override
public String toString(){
return getSign()+value;
}
}
abstract class Money {
abstract public int getValue();
abstract public void setValue(int n);
abstract public String getSign();
@Override
public String toString(){
return getSign()+getValue();
}
}
class Yen extends Money {
private int value;
public Yen(int v){
value = v;
}
public int getValue(){
return value;
}
public void setValue(int n){
value = n;
}
public String getSign(){
return "¥";
}
}
class Dollar extends Money {
private int value;
public Dollar(int v){
value = v;
}
public int getValue(){
return value;
}
public void setValue(int n){
value = n;
}
public String getSign(){
return "$";
}
}
abstract class Money {
private int value;
public Money(int v){
value = v;
}
public int getValue(){
return value;
}
public void setValue(int n){
value = n;
}
abstract public String getSign();
@Override
public String toString(){
return getSign()+getValue();
}
}
class Yen extends Money {
public Yen(int v){
super(v);
}
public String getSign(){
return "¥";
}
}
class Dollar extends Money {
public Dollar(int v){
super(v);
}
public String getSign(){
return "$";
}
}
class Ex1 {
public static void main(String[] arg){
String str="This is a pen.";
System.out.println(str.length());
System.out.println(str.toUpperCase());
System.out.println(str.toLowerCase());
}
}
import java.io.*;
class Ex {
public static void main(String[] arg)
throws FileNotFoundException, IOException {
File f = new File(arg[0]);
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String line;
while((line = br.readLine())!=null){
System.out.println(line.length());
}
br.close();
}
}
import java.io.*;
class Ex {
public static void main(String[] arg)
throws FileNotFoundException, IOException {
File f = new File(arg[0]);
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String line;
int total=0;
String[] data;
while((line = br.readLine())!=null){
data = line.split("\\D+");
for(String str : data){
try{
total += Integer.parseInt(str);
}catch(NumberFormatException e){
// 数値として読めないものは無視
}
}
}
System.out.println(total);
br.close();
}
}
import java.io.*;
import java.util.LinkedList;
class Ex {
public static void main(String[] arg)
throws FileNotFoundException, IOException {
File f = new File(arg[0]);
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
LinkedList<String> ll = new LinkedList<String>();
String line;
while((line = br.readLine())!=null){
ll.addFirst(line);
}
for(String str : ll){
System.out.println(str);
}
br.close();
}
}
import java.io.*;
import java.util.*;
class Ex {
public static void main(String[] arg)
throws FileNotFoundException, IOException {
File f = new File(arg[0]);
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
TreeMap<String,Integer> hindo = new TreeMap<String,Integer>();
String line;
String[] data;
while((line = br.readLine())!=null){
data = line.split("\\W+");
for(String str : data){
if(str.equals("")){
continue;
}
p if(hindo.containsKey(str)){
hindo.put(str,hindo.get(str)+1);
}else{
hindo.put(str,1);
}
}
}
for(Map.Entry<String,Integer> m : hindo.entrySet()){
System.out.println(m.getKey()+": "+m.getValue());
}
br.close();
}
}
class Ex {
public static void main(String[] arg) {
int[] array = {1,2,3};
for(int x : array){
System.out.println(x);
}
}
}
class Ex {
public static void main(String[] arg) {
int[] array = {1,2,3};
int result = 0;
for(int x : array){
result += x;
}
System.out.println(result);
}
}
import java.util.Arrays;
class Ex {
public static void main(String[] arg) {
int[] array = {1,2,3};
Arrays.stream(array).forEach(System.out::println);
}
}
import java.util.Arrays;
class Ex {
public static void main(String[] arg) {
int[] array = {1,2,3};
System.out.println(Arrays.stream(array)
.reduce((x,y)->x+y)
.getAsInt());
}
}
与えられた文において名詞は次の通り。
商品は複数存在し、また売上げも複数の商品に対してそれぞれの売上げがある。 そこで、商品とは商品コード、商品名、単価からなる情報とする。 また、売上げは商品コードと売上げ数とする。 さらに、売上げデータは売上げを複数含んでおり、また商品のあつまりの商品 データというオブジェクトも作る。
また動詞や目的語を考えると次のような関係が考えられる。
売上げデータ: 得る(商品コード) →売上げ数 売上げデータ: 総売上げを得る
import java.util.*;
class Seiseki {
private HashMap<String,Integer> seisekiMap;
public Seiseki(){
seisekiMap = new HashMap<String,Integer>();
}
public Integer put(String className, Integer point){
return seisekiMap.put(className,point);
}
public Integer get(String className){
return seisekiMap.get(className);
}
public boolean containsKey(String className){
return seisekiMap.containsKey(className);
}
public Set<Map.Entry<String,Integer>> entrySet(){
return seisekiMap.entrySet();
}
public Set<String> keySet(){
return seisekiMap.keySet();
}
public double getAverage(){
int total=0;
for(int point : seisekiMap.values()){
total+=point;
}
return (double)total/seisekiMap.values().size();
}
}
import java.util.*;
class Seiseki extends HashMap<String,Integer> {
public double getAverage(){
int total=0;
for(int point : this.values()){
total+=point;
}
return (double)total/this.values().size();
}
}
import java.util.*;
class Seiseki extends HashMap<String,Integer> {
public double getAverage(){
int total=0;
for(int point : this.values()){
total+=point;
}
return (double)total/this.values().size();
}
}
class Student implements Comparable<Student> {
private String id;
private Seiseki seiseki;
public Student(){
seiseki = new Seiseki();
}
public void setId(String id){
this.id = id;
}
public String getId(){
return id;
}
public Seiseki getSeiseki(){
return seiseki;
}
public boolean equals(Student s){
return id.equals(s.id);
}
@Override public int hashCode(){
return id.hashCode();
}
public int compareTo(Student s){
return id.compareTo(s.id);
}
}
import java.util.*;
abstract class Comp implements Comparator<ThreeInt>{
protected int intComp(int a1, int a2){
if(a1<a2) return -1;
if(a1==a2) return 0;
return 1;
}
}
class Third extends Comp {
public int compare(ThreeInt t1, ThreeInt t2){
return intComp(t1.getThird(),t2.getThird());
}
}
class First extends Comp {
public int compare(ThreeInt t1, ThreeInt t2){
return intComp(t1.getFirst(),t2.getFirst());
}
}
class Second extends Comp {
public int compare(ThreeInt t1, ThreeInt t2){
return intComp(t1.getSecond(),t2.getSecond());
}
}
まず、Status クラスのコンストラクタで、 500 のメッセージを登録する
private Status(){
word = new HashMap<Integer,String>();
message = new HashMap<Integer,String>();
word.put(200,"Ok");
word.put(404,"Not Found");
message.put(404,"Not Found");
word.put(500,"Internal Error");
message.put(500,"Internal Error");
}
そして、 Message クラスのファクトリで IOException を投げずにエラーメッ セージを作成するようにする。
class Message {
public static Message getInstance(String filePath)
// throws IOException
{
File f = new File(filePath);
Message message;
try {
message = new FileContent(f);
}catch(FileNotFoundException e) {
message = new ErrorMessage(404);
}catch(IOException e) {
message = new ErrorMessage(500);
}
return message;
}
}
仕上げに、main でも IOException を投げるのを止める。
class Test {
public static void main(String[] arg)
// throws IOException
{
Message m = Message.getInstance(arg[0]);
System.out.println(m);
}
}
SimpleFrame クラスに次を付け加える。
private JButton reset;
public JButton getResetButton(){
return reset;
}
ButtonPanel のコンストラクタを書き換える
public ButtonPanel(){
super();
plus = new JButton("+");
minus = new JButton("-");
reset = new JButton("Reset");
add(plus);
add(minus);
add(reset);
}
Data クラスに Clear インナークラスを追加する。
class Clear implements ActionListener {
public Clear(){}
public void actionPerformed(ActionEvent event){
data=0;
update();
}
}
Rei クラスの main で、下記の行を追加する。
frame.getResetButton().addActionListener(data.new Clear());
5!=120, 6!=720
public static void main(String[] arg){
for(int i=0; i<=50; i++){
System.out.println(i+": "+fibo2(i));
}
}
private static long[] a = new long[51];
public static long fibo(int n){
if(a[n]!=0) return a[n];
if(n==0){
a[n]=1;
return a[n];
}
if(n==1){
a[n]=1;
return a[n];
}
a[n]=fibo2(n-1)+fibo2(n-2);
return a[n];
}
class Rei {
private static int combination(int n, int m){
if(m==0) return 1;
if(n==m) return 1;
return combination(n-1,m-1)+combination(n-1,m);
}
public static void main(String[] arg){
System.out.println(combination(5,2));
System.out.println(combination(20,2));
}
}
5C2=10, 20C2=190
n 枚のディスクの移動回数を an とする。 a1=1 である。 プログラムから an = (n-1 枚の移動)+n枚目の移動+(n-1枚の移動) なので、 an = an-1 + 1 + an-1 となる。 an + 1 = 2 × (an-1 + 1) より、 an = 2n - 1 である。
14種類。
import java.io.*;
import java.util.*;
class Ex {
private static double[][] csvToMatrix(Reader r) throws IOException {
LinkedList<double[]> ll = new LinkedList<double[]>();
BufferedReader br = new BufferedReader(r);
String input;
while((input = br.readLine())!=null){
String[] data = input.split(",");
double[] array = new double[data.length];
for(int i=0; i< array.length; i++){
array[i] = Double.parseDouble(data[i]);
}
ll.add(array);
}
double[][] matrix = new double[ll.size()][];
int index=0;
for(double[] d : ll){
matrix[index++] = d;
}
return matrix;
}
public static void main(String[] arg) throws IOException {
Reader r = new InputStreamReader(System.in);
double[][] mat = csvToMatrix(r);
for(double[] d : mat){
System.out.println(Arrays.toString(d));
}
}
}
0 | 1 | 1 | 0 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 1 |
0 | 0 | 1 | 0 |
class Ex {
private static int[][] getMatrix(InputStream is){
Scanner scanner = new Scanner(is);
int n = scanner.nextInt();
int[][] matrix = new int[n][];
for(int i=0; i<n; i++){
matrix[i] = new int[n];
for(int j=0; j<n; j++){
matrix[i][j] = scanner.nextInt();
}
}
return matrix;
}
private static int getDegree(int[] vertex){
int degree = 0;
for(j=0; j<vertex.length; j++){
degree += vertex[i][j];
}
return degree;
}
private static boolean isEular(int[][] graph){
int kiten=0;
for(int i=0; i<graph.length; i++){
kiten += getDegree(graph[i]) % 2;
}
return (kiten==0)||(kiten==2);
}
public static void main(String[] arg){
int[][] mat = getMatrix(System.in);
if(isEular(mat)){
System.out.println("一筆書きできます。");
}else{
System.out.println("一筆書きできません。");
}
}
}
削除を行うにはどこで削除を行うかはっきりさせる必要があります。 そのひとつは任意の位置で削除を行うことです。 これは、特定の頂点を注目する必要がありますので、イテレータのようなもの を用意しなければなりません。 しかし、イテレータは実装されてません。 そして、 add も最終頂点としての追加だけです。 そこで、ここでは先頭の頂点を削除するコードを与えます。 これは管理頂点が指す頂点を次に進めるだけで良いので、次のようになります。
public class SenkeiList<E> {
public void removeFirst(){
head = head.next;
}
}
双方向リストを実装する際に考えなければいけないのは nil 頂点の処理であ る。 無くしてしまって、管理変数を二つ用意する方法や、 nil 頂点を両端に置く 方法、ひとつの nil 頂点の両端にリストを円状に結びつける方法などが考え られ、それぞれ一長一短がある。
解答作成中
import java.util.*;
public class AList<E> extends AbstractList<E> {
private Object[] array;
public AList(int n){
super();
array = new Object[n];
}
public E get(int index){
@SuppressWarnings({"unchecked"})
E result = (E) array[index];
return result;
}
public int size(){
int result;
for(result=0;result<array.length && array[result]!=null;result++);
return result;
}
public void add(int index, E element){
array[index] = element;
}
}
class Test {
public static void main(String[] arg){
AList<String> list = new AList<String>(10);
list.add("abc");
list.add("def");
list.add("ghi");
for(String s : list){
System.out.println(s);
}
}
}
14種類