落書きノート

ふと自分が気になった事を書いてます

Javaで問題を解く CodingBat

// intMax

public int intMax(int a, int b, int c) {
  int max = a;
  if(max < b) max = b;
  if(max < c) max = c;
  return max;
}

// close10

public int close10(int a, int b) {
  int a1 = Math.abs(a - 10);
  int b1 = Math.abs(b - 10);
  if(a1 == b1)
    return 0;
  else if(a1 < b1)
    return a;
  else
    return b;
}

// in3050

public boolean in3050(int a, int b) {
  return a >= 30 && a <= 40 && b >= 30 && b <= 40 || a >= 40 && a <= 50 && b >= 40 && b <= 50 ? true : false;
}

// max1020

public int max1020(int a, int b) {
  if(a >= 10 && a <= 20 && b >= 10 && b <= 20)
    return a > b ? a : b;
  else if(a >= 10 && a <= 20)
    return a;
  else if(b >= 10 && b <= 20)
    return b;
  else
    return 0;
}

// stringE

public boolean stringE(String str) {
  int cnt = 0;
  for(char c : str.toCharArray())
    if(c == 'e')
      cnt++;
  if(cnt >= 1 && cnt <= 3)
    return true;
  else
    return false;
}

C言語で問題を解く

解きながら学ぶC言語

解きながら学ぶC言語

// q3-4

#include <stdio.h>

int main(void) {
  char buf[100];
  int a, b;
  printf("二つの整数を入力\n");
  fgets(buf, sizeof(buf), stdin);
  sscanf(buf, "%d%d", &a, &b);
  printf("A == B = %d\n", a == b);
  printf("A != B = %d\n", a != b);
  printf("A < B = %d\n", a < b);
  printf("A > B = %d\n", a > b);
  printf("A <= B = %d\n", a <= b);
  printf("A >= B = %d\n", a >= b);
  return 0;
}

// q3-5

#include <stdio.h>
#include <stdlib.h>

int main(void) {
  int a;
  printf("整数を入力してください : ");
  scanf("%d", &a);
  printf("絶対値は%dです。\n", abs(a));
  return 0;
}

// q3-6

#include <stdio.h>

int main(void) {
  int num;
  printf("整数を入力してください : ");
  scanf("%d", &num);
  if(num == 0)
    puts("ゼロを入力しましたね。");
  else
    puts("ゼロ以外の数を入力しましたね。");
  return 0;
}

// q3-7

#include <stdio.h>

int main(void) {
  int a, b;
  char buf[100];
  printf("二つの整数を入力してください。\n");
  fgets(buf, sizeof(buf), stdin);
  sscanf(buf, "%d%d", &a, &b);
  if(a > b)
    puts("AはBより大きいです。");
  else if(a < b)
    puts("AはBより小さいです。");
  else
    puts("AとBは等しいです。");
  return 0;
}

// q3-8

#include <stdio.h>

int main(void) {
  int a, b, c;
  char buf[100];
  puts("三つの整数を入力してください。");
  fgets(buf, sizeof(buf), stdin);
  sscanf(buf, "%d%d%d", &a, &b, &c);
  int min = a;
  if(min > b) min = b;
  if(min > c) min = c;
  printf("最小値は%dです。\n", min);
  return 0;
}

// q3-9

#include <stdio.h>

int main(void) {
  int a, b, c, d;
  char buf[100];
  puts("4つの整数を入力してください。");
  fgets(buf, sizeof(buf), stdin);
  sscanf(buf, "%d%d%d%d", &a, &b, &c, &d);
  int max = a;
  if(max < b) max = b;
  if(max < c) max = c;
  if(max < d) max = d;
  printf("最大値は%dです。\n", max);
  return 0;
}

// q3-10

#include <stdio.h>
#include <stdlib.h>

int main(void) {
  int a, b;
  char buf[100];
  printf("二つの整数を入力してください。\n");
  fgets(buf, sizeof(buf), stdin);
  sscanf(buf, "%d%d", &a, &b);
  printf("それらの差は%dです。\n", abs(a - b));
  return 0;
}

// q3-10-another

#include <stdio.h>

int main(void) {
  int a, b;
  char buf[100];
  puts("二つの整数を入力してください。");
  fgets(buf, sizeof(buf), stdin);
  sscanf(buf, "%d%d", &a, &b);
  printf("それらの差は%dです。\n", a > b ? a - b : b - a);
  return 0;
}

// q3-11

#include <stdio.h>

int main(void) {
  int a, b;
  char buf[100];
  puts("二つの整数を入力してください。");
  fgets(buf, sizeof(buf), stdin);
  sscanf(buf, "%d%d", &a, &b);
  int diff;
  if(a > b)
    diff = a - b;
  else
    diff = b - a;
  printf("それらの差は%dです。\n", diff);
  return 0;
}

C言語で問題を解く

解きながら学ぶC言語

解きながら学ぶC言語

// q3_1
#include <stdio.h>

int main(void) {
  int num;
  printf("整数を入力してください : ");
  scanf("%d", &num);
  if(num % 10 == 0)
    puts("その数は10の倍数です。");
  else
    puts("その数は10の倍数ではありません。");
  return 0;
}

// q3_2
#include <stdio.h>

int main(void) {
  int a, b;
  printf("二つの整数を入力してください。\n");
  scanf("%d%d", &a, &b);
  if(a % b == 0)
    puts("BはAの約数です。");
  else
    puts("BはAの約数ではありません。");
  return 0;
}

// q3_3
#include <stdio.h>

int main(void) {
  int num;
  printf("整数を入力してください : ");
  scanf("%d", &num);
  if(num % 2)
    printf("その数は奇数です。\n");
  else
    printf("その数は偶数です。\n");
  return 0;
}

Javaで問題を解く CodingBat

解いた問題全てをこのブログに載せているというわけではないです。載せたいものだけ載せてます(大したことのないものも載せてますけど)。裏でこそこそやってる時もあります。笑

// loneTeen
public boolean loneTeen(int a, int b) {
  return a >= 13 && a <= 19 && b >= 13 && b <= 19 ? false : a >= 13 && a <= 19 ? true : b >= 13 && b <= 19 ? true : false;
}

// delDel
public String delDel(String str) {
  String answer = "";
  int beginIndex = str.indexOf("del");
  if(beginIndex == 1) {
    for(int i = 0; i < beginIndex; i++)
      answer += str.charAt(i);
    for(int i = beginIndex + 3; i < str.length(); i++)
      answer += str.charAt(i);
    return answer;
  }
  else
    return str;
}

// mixStart
public boolean mixStart(String str) {
  return str.indexOf("ix") == 1 ? true : false;
}

// startOz
public String startOz(String str) {
  int beginIndexoz = str.indexOf("oz");
  int beginIndexz = str.indexOf("z", 1);
  int beginIndexo = str.indexOf("o");
  if(beginIndexoz == 0)
    return "oz";
  else if(beginIndexz == 1)
    return "z";
  else if(beginIndexo == 0)
    return "o";
  else
    return "";
}

Javaで問題を解く

ちょっと組んだのが複雑過ぎたかも…。もう少しシンプルにやれるのですが、用途が限定されるのが悩み。多分このコードも要素数をいじられたら誤作動が起きそうですけど、一応こういうふうに作りました。解法を見てまた今度やり直すかも。

世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~

世界で闘うプログラミング力を鍛える本 ~コーディング面接189問とその解法~

// 問題1.7 行列の回転

class q1_7 {
    public static void main(String[] args) {
        int A[][] = {
            {1,1,2,2},
            {1,1,2,2},
            {3,3,4,4},
            {3,3,4,4}
        };
        int[][] a = new int[A.length / 2][A[0].length / 2];
        int[][] b = new int[A.length / 2][A[0].length / 2];
        int[][] c = new int[A.length / 2][A[0].length / 2];
        int[][] d = new int[A.length / 2][A[0].length / 2];
        for(int i = 0; i < A.length; i++) {
            for(int j = 0; j < A[0].length; j++) {
                System.out.print(A[i][j]);
                if(j != A[0].length - 1)
                    System.out.print(' ');
            }
            System.out.println();
        }
        // 配列4つ
        for(int i = 0, x = 0; i < A.length / 2; i++, x++) {
            for(int j = 0, y = 0; j < A[0].length / 2; j++, y++) {
                a[x][y] = A[i][j];
            }
        }
        for(int i = 0, x = 0; i < A.length / 2; i++, x++) {
            for(int j = A[0].length / 2, y = 0; j < A[0].length; j++, y++) {
                b[x][y] = A[i][j];
            }
        }
        for(int i = A.length / 2, x = 0; i < A.length; i++, x++) {
            for(int j = 0, y = 0; j < A[0].length / 2; j++, y++) {
                c[x][y] = A[i][j];
            }
        }
        for(int i = A.length / 2, x = 0; i < A.length; i++, x++) {
            for(int j = A[0].length / 2, y = 0; j < A[0].length; j++, y++) {
                d[x][y] = A[i][j];
            }
        }
        for(int i = 0, x = 0; i < A.length / 2; i++, x++) {
            for(int j = 0, y = 0; j < A[0].length / 2; j++, y++) {
                A[i][j] = c[x][y];
            }
        }
        for(int i = 0, x = 0; i < A.length / 2; i++, x++) {
            for(int j = A[0].length / 2, y = 0; j < A[0].length; j++, y++) {
                A[i][j] = a[x][y];
            }
        }
        for(int i = A.length / 2, x = 0; i < A.length; i++, x++) {
            for(int j = 0, y = 0; j < A[0].length / 2; j++, y++) {
                A[i][j] = d[x][y];
            }
        }
        for(int i = A.length / 2, x = 0; i < A.length; i++, x++) {
            for(int j = A[0].length / 2, y = 0; j < A[0].length; j++, y++) {
                A[i][j] = b[x][y];
            }
        }
        for(int i = 0; i < A.length; i++) {
            for(int j = 0; j < A[0].length; j++) {
                System.out.print(A[i][j]);
                if(j != A[0].length - 1)
                    System.out.print(' ');
            }
            System.out.println();
        }
        int B[][] = {
            {1,1,2,2},
            {1,1,2,2},
            {3,3,4,4},
            {3,3,4,4}
        };
        // 配列が二つ
        int[][] a2 = new int[A.length / 2][A[0].length];
        int[][] b2 = new int[A.length / 2][A[0].length];
        for(int i = 0, x = 0; i < A.length / 2; i++, x++) {
            for(int j = 0, y = 0; j < A[0].length; j++, y++) {
                a2[x][y] = B[i][j];
            }
        }
        for(int i = A.length / 2, x = 0; i < A.length; i++, x++) {
            for(int j = 0, y = 0; j < A[0].length; j++, y++) {
                b2[x][y] = B[i][j];
            }
        }
        for(int i = 0, x = 0; i < A.length / 2; i++, x++) {
            for(int j = A[0].length / 2, y = 0; j < A[0].length; j++, y++) {
                B[i][j] = a2[x][y];
            }
        }
        for(int i = A.length / 2, x = 0; i < A.length; i++, x++) {
            for(int j = A[0].length / 2, y = a2[0].length / 2; j < A[0].length; j++, y++) {
                B[i][j] = a2[x][y];
            }
        }
        for(int i = 0, x = 0; i < A.length / 2; i++, x++) {
            for(int j = 0, y = 0; j < A[0].length / 2; j++, y++) {
                B[i][j] = b2[x][y];
            }
        }
        for(int i = A.length / 2, x = 0; i < A.length; i++, x++) {
            for(int j = 0, y = b2[0].length / 2; j < A[0].length / 2; j++, y++) {
                B[i][j] = b2[x][y];
            }
        }
        for(int i = 0; i < B.length; i++) {
            for(int j = 0; j < B[0].length; j++) {
                System.out.print(B[i][j]);
                if(j != B[0].length - 1)
                    System.out.print(' ');
            }
            System.out.println();
        }
    }
}

C++で問題を解く AIZU ONLINE JUDGE

// Matrix Multiplication

#include <iostream>
#include <algorithm>

using namespace std;

int main(void) {
  int n,m,l;
  cin >> n >> m >> l;
  long long A[n][m],B[m][l],C[n][l];
  fill(C[0], C[n], 0);
  for(int i = 0; i < n; i++)
    for(int j = 0; j < m; j++)
      cin >> A[i][j];
  for(int i = 0; i < m; i++)
    for(int j = 0; j < l; j++)
      cin >> B[i][j];
  for(int i = 0; i < n; i++)
    for(int j = 0; j < l; j++)
      for(int k = 0; k < m; k++)
        C[i][j] += A[i][k] * B[k][j];
  for(int i = 0; i < n; i++) {
    for(int j = 0; j < l; j++) {
      cout << C[i][j];
      if(j != l - 1)
        cout << ' ';
    }
    cout << endl;
  }
}

Javaで問題を解く CodingBat

// or35
public boolean or35(int n) {
  return n >= 0 && n % 3 == 0 || n % 5 == 0 ? true : false;
}

// front22
public String front22(String str) {
  String answer = "";
  if(str.length() <= 2)
    answer = str + str + str;
  else {
    String first = str.substring(0, 2);
    answer += first;
    answer += str;
    answer += first;
  }
  return answer;
}

// startHi
public boolean startHi(String str) {
  return str.startsWith("hi") ? true : false;
}

// icyHot
public boolean icyHot(int temp1, int temp2) {
  if(temp1 < 0 && temp2 > 100)
    return true;
  else if(temp1 > 100 && temp2 < 0)
    return true;
  else
    return false;
}

// in1020
public boolean in1020(int a, int b) {
  return a >= 10 && a <= 20 || b >= 10 && b <= 20 ? true : false;
}

// hasTeen
public boolean hasTeen(int a, int b, int c) {
  return a >= 13 && a <= 19 || b >= 13 && b <= 19 || c >= 13 && c <= 19 ? true : false;
}