zoukankan      html  css  js  c++  java
  • 今日算法题

    题目一:杨辉三角形

    问题描述:

    杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
    它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
    下面给出了杨辉三角形的前4行:(时间限制:1.0s,内存限制:256.0MB,1 <= n <= 34)
     
    1
      
    1 1
      
    1 2 1
      
    1 3 3 1
      
    给出n,输出它的前n行。

    输入、输出格式:

    输入包含一个数n。

    输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
    样例输出:
    1
    1 1
    1 2 1
    1 3 3 1

    解决思路:

    • 由于输出结果的形式如上,所以可以考虑将阵列中的值存在一个二维数组中。

    • 经过观察可以发现第一列和阵列对角线上的值都为1,其余位置的值可以根据公式算出。

    解决代码:

    
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
    
            int n = sc.nextInt();
    
            int[][] arr = new int[n][n];
            for(int i = 0; i < n; i++) {
                arr[i][0] = 1;
                arr[i][i] = 1;
            }
            for(int i = 2; i < n; i++) {
                for(int j = 1; j < i; j++) {
                    arr[i][j] = arr[i-1][j] + arr[i-1][j-1];
                }
            }
    
            for(int i = 0; i < n; i++) {
                for(int j = 0; j <= i; j++) {
                    System.out.print(arr[i][j] + " ");
                }
                System.out.println();
            }
        }
    }
    
    

    题目二:回文数

    问题描述:

    1221是一个非常特殊的数,它从左边读和从右边读是一样的,编程求所有这样的四位十进制数。(时间限制:1.0s,内存限制:512.0MB)

    输出格式:

    按从小到大的顺序输出满足条件的四位十进制数。

    解决思路:

    将数字转换成字符串然后用StringBuffer的reverse()判断即可。

    解决代码:

    
    public class Main {
        public static void main(String[] args) {
            for(int i = 1001; i <= 9999; i++) {
                if(reverse(i)) {
                    System.out.println(i);
                }
            }
        }
    
        private static boolean reverse(int x) {
            String s1 = String.valueOf(x);
            String s2 = new StringBuffer(s1).reverse().toString();
    
            if(s1.equals(s2)) {
                return true;
            }
            else
                return false;
        }
    }
    
    

    题目三:特殊的数字

    问题描述:

    153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。(时间限制:1.0s,内存限制:512.0MB)

    输出格式:

    按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。

    解决代码:

    
    public class Main {
        public static void main(String[] args) {
            for(int i = 123; i < 999; i++) {
                int o = i % 10;
                int p = i / 10 % 10;
                int q = i / 100;
                if((o*o*o + p*p*p + q*q*q) == i) {
                    System.out.println(i);
                }
            }
        }
    }
    
    

    题目四:查找整数

    问题描述:

    给出一个包含n个整数的数列,问整数a在数列中的第一次出现是第几个。(时间限制:1.0s,内存限制:256.0MB,1 <= n <= 1000)

    输入、输出格式:

    第一行包含一个整数n。
    第二行包含n个非负整数,为给定的数列,数列中的每个数都不大于10000。
    第三行包含一个整数a,为待查找的数。

    如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。

    解决代码:

    
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
    
            int n = sc.nextInt();
            int[] arr = new int[n];
            for(int i = 0; i < n; i++) {
                arr[i] = sc.nextInt();
            }
            int a = sc.nextInt();
    
            int i;
            for(i = 0; i < n; i++) {
                if(arr[i] == a) {
                    System.out.println(i + 1);
                    break;
                }
            }
    
            if(i == n) {
                System.out.println(-1);
            }
    
        }
    }
    
    
  • 相关阅读:
    【转】【SEE】基于SSE指令集的程序设计简介
    【转】【Asp.Net】asp.net服务器控件创建
    ControlTemplate in WPF ——ScrollBar
    ControlTemplate in WPF —— Menu
    ControlTemplate in WPF —— Expander
    ControlTemplate in WPF —— TreeView
    ControlTemplate in WPF —— ListBox
    ControlTemplate in WPF —— ComboBox
    ControlTemplate in WPF —— TextBox
    ControlTemplate in WPF —— RadioButton
  • 原文地址:https://www.cnblogs.com/syhyfh/p/12465027.html
Copyright © 2011-2022 走看看