蓝桥杯 历届试题 数字三角形

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯 历届试题 数字三角形相关的知识,希望对你有一定的参考价值。

参考技术A 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。

路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。

输入的第一行包含一个整数 ,表示三角形的行数。下面的 行给出数字三角形。数字三角形上的数都是0 至 100 之间的整数。

输出一个整数,表示答案。

注意,这不是普通的数塔问题,因为向左走的次数与向右走的次数差值不超过1,所以当到达最后一层时,一定是落在中间位置,如果层数是奇数,那么最后一定落在最后一层的第 个元素上,如果层数是偶数,最后一定是落在第 或第 个元素上。所以dp只要从最后一层的中间开始向上递推就可以了。

(蓝桥杯)试题 算法训练 数字反转

试题 算法训练 数字反转

资源限制
时间限制:1.0s 内存限制:128.0MB
问题描述
  给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2) 。
输入格式
  输入共 1 行,一个整数 N。
输出格式
  输出共 1 行,一个整数,表示反转后的新数。
样例输入
123
输出样例
  321
样例输入
-380
样例输出
-83
数据规模和约定
  -1,000,000,000 ≤ N≤1,000,000,000。

import java.util.Scanner;

public class Main {
    public static String f(int n){
        boolean flag = true ;
        String s = String.valueOf(n) ;
        String result = new String("") ;
        if(n > 0){
            for(int i=s.length()-1; i>=0; i--){
                if(s.charAt(i) == '0' && flag){
                    continue ;
                }else {
                    flag = false;
                    result += s.charAt(i) ;
                }
            }
        }else{
            result = "-" ;
            for(int i=s.length()-1; i>=1; i--){
                if(s.charAt(i) == '0' && flag){
                    continue ;
                }else {
                    flag = false;
                    result += s.charAt(i) ;
                }
            }
        }
        return result ;

    }
    public static void main(String[] args){
        Scanner input = new Scanner(System.in) ;
        int n = input.nextInt() ;
        System.out.println(f(n)) ;
    }
}

以上是关于蓝桥杯 历届试题 数字三角形的主要内容,如果未能解决你的问题,请参考以下文章

第十一届蓝桥杯python组试题解答

2020年软件类第十一届蓝桥杯 省赛 python组(人生苦短,我用python)

算法笔记_122:蓝桥杯第七届省赛(Java语言A组)试题解答

蓝桥杯练习系统历届试题 剪格子 dfs

蓝桥杯练习系统历届试题 带分数 dfs

蓝桥杯-试题B:字串数字