zoukankan      html  css  js  c++  java
  • 540A: Combination Lock

    题目链接:http://codeforces.com/problemset/problem/540/A

    题意:

    输入的两个长度一样的数,求对应位置的某位数到下一个数需要最小的步长,每次只能先前或先后走以步,求所有的步长的的和。(如下例)

    Sample test(s)
    input
    5
    82195
    64723
    output
    13

    解题:

    这个很简单,暴力破解

    可以把数字0-9是个长度是10的循环,对于任意两个数之间的最小距离就等于:min{|a-b|,|10-|a-b||}

    对于两个数之间的距离很容易想到是 :|a-b|,但是这个要求的最小距离,a绕一圈回来的距离是10,若按照一定方向走:a->b  ,b->a 的距离也是10,则就有了 |10-|a-b||这个b->a的距离;我们要求的是最小距离,所以要在这个两个距离中取最小值

    Java程序:

    import java.util.Scanner;
    
    
    public class A540 {
        static void run0(){
            Scanner in = new Scanner(System.in);
            int n = in.nextInt();
            String before = in.next();
            String end = in.next();
            int sum = 0;
            for(int i =0;i<n;i++){
                int a = (int)before.charAt(i);
                int b= (int)end.charAt(i);
                sum = sum + Math.min(Math.abs(a-b), Math.abs(10-Math.abs(a-b)));
            }
            System.out.println(sum);
        }
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            run0();
        }
    
    }
  • 相关阅读:
    Vue.js组件理解
    Vue.js 基础知识
    JS-WEB-API 整理
    JS面向对象基础
    JS基础知识系统整理(不断更新)
    图解关于pageX,pageY,screenX,screenY,clientX,clientY的区别
    妙味JS学习记录(二)
    Ajax全接触笔记
    妙味JS学习记录(一)
    c#设计模式系列:状态模式(State pattern)
  • 原文地址:https://www.cnblogs.com/bbbblog/p/4674140.html
Copyright © 2011-2022 走看看