编程题赏析
来源:互联网 发布:华语男唱作人排名知乎 编辑:程序博客网 时间:2024/05/17 00:11
1:牛牛想对一个数做若干次变换,直到这个数只剩下一位数字。
变换的规则是:将这个数变成 所有位数上的数字的乘积。比如285经过一次变换后转化成2*8*5=80.
问题是,要做多少次变换,使得这个数变成个位数。
输入描述:
输出一个整数,表示变换次数。
285
输出例子:
神奇数的定义:存在不同位置的两个数位,组成一个两位数(且不含前导0),且这个两位数为质数。
比如:153,可以使用数字3和数字1组成13,13是质数,满足神奇数。同样153可以找到31和53也为质数,只要找到一个质数即满足神奇数。
输入描述:
输入为两个整数a和b,代表[a, b]区间 (1 ≤ a ≤ b ≤ 10000)。
输出描述:
输出为一个整数,表示区间内满足条件的整数个数
输入例子:
11 20
输出例子:
6
3:牛牛手里有一个字符串A,羊羊的手里有一个字符串B,B的长度大于等于A,所以牛牛想把A串变得和B串一样长,这样羊羊就愿意和牛牛一起玩了。
而且A的长度增加到和B串一样长的时候,对应的每一位相等的越多,羊羊就越喜欢。比如"abc"和"abd"对应相等的位数为2,为前两位。
牛牛可以在A的开头或者结尾添加任意字符,使得长度和B一样。现在问牛牛对A串添加完字符之后,不相等的位数最少有多少位?
变换的规则是:将这个数变成 所有位数上的数字的乘积。比如285经过一次变换后转化成2*8*5=80.
问题是,要做多少次变换,使得这个数变成个位数。
输入描述:
输入一个整数。小于等于2,000,000,000。
输出一个整数,表示变换次数。
285
输出例子:
2
import java.util.Scanner;public class Test4 { public static boolean containszero(char[] a) { for(int i=0;i<a.length;i++) { if(a[i]=='0') { return true; } } return false; }public static void main(String[] args) {Scanner sc=new Scanner(System.in);while(sc.hasNext()){String s=sc.next();int count=0;char[] a=s.toCharArray();int length=s.length(); int n=Integer.parseInt(s); while(n>9) { if(containszero(a)) { count++; break; } else { int temp=1; for(int i=1;i<=a.length;i++) { int minq=(int) (n/Math.pow(10, a.length-i)); int yu=(int)(n%Math.pow(10, a.length-i)); temp=temp*minq; n=yu; } count++; n=temp; a=String.valueOf(n).toCharArray(); } } System.out.println(count);}}}2:给出一个区间[a, b],计算区间内“神奇数”的个数。
神奇数的定义:存在不同位置的两个数位,组成一个两位数(且不含前导0),且这个两位数为质数。
比如:153,可以使用数字3和数字1组成13,13是质数,满足神奇数。同样153可以找到31和53也为质数,只要找到一个质数即满足神奇数。
输入描述:
输入为两个整数a和b,代表[a, b]区间 (1 ≤ a ≤ b ≤ 10000)。
输出描述:
输出为一个整数,表示区间内满足条件的整数个数
输入例子:
11 20
输出例子:
6
import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class Test5 { public static boolean ismagicnumber(int n) { String s=String.valueOf(n); char[] a=s.toCharArray(); Map<Character,Integer> map=new HashMap<>(); for(int i=0;i<a.length;i++) { if(!map.containsKey(a[i])) { map.put(a[i], 1); } else { int minq=map.get(a[i]); map.put(a[i], ++minq); } } if(map.containsKey('1')) { if(map.get('1')>1||map.containsKey('3')||map.containsKey('4')||map.containsKey('6')||map.containsKey('7')||map.containsKey('9')) { return true; } } else if(map.containsKey('3')) { if(map.containsKey('2')||map.containsKey('4')||map.containsKey('5')||map.containsKey('8')||map.containsKey('7')) { return true; } } else if(map.containsKey('7')) { if(map.containsKey('4')||map.containsKey('6')||map.containsKey('9')) { return true; } } else if(map.containsKey('9')) { if(map.containsKey('2')||map.containsKey('5')||map.containsKey('8')) { return true; } }return false; }public static void main(String[] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()){ int a=sc.nextInt(); int b=sc.nextInt(); int count=0; for(int i=a;i<=b;i++) { if(i<10) { continue; } else if(ismagicnumber(i)) { count++; } } System.out.println(count);}}}
3:牛牛手里有一个字符串A,羊羊的手里有一个字符串B,B的长度大于等于A,所以牛牛想把A串变得和B串一样长,这样羊羊就愿意和牛牛一起玩了。
而且A的长度增加到和B串一样长的时候,对应的每一位相等的越多,羊羊就越喜欢。比如"abc"和"abd"对应相等的位数为2,为前两位。
牛牛可以在A的开头或者结尾添加任意字符,使得长度和B一样。现在问牛牛对A串添加完字符之后,不相等的位数最少有多少位?
输入描述:
第一行为字符串A,第二行为字符串B,A的场地小于等于B的长度,B的长度小于等于50.字符均为小写字母。
输出描述:
输出一个整数表示A串添加完字符之后,不相等的位数最少有多少位?
输入例子:
abecabc
输出例子:
1
package com.itheima.niuke.com;import java.util.*;public class Test6{ public static void main(String[]args) { Scanner in = new Scanner(System.in); while(in.hasNext()) { String A = in.nextLine(); String B = in.nextLine(); int len = B.length()-A.length(); int max =0; for(int i=0;i<=len;i++) { int tempMax=0; int sub=0; for(int j=0;j<A.length();j++) { if(A.charAt(j)==B.charAt(j+i)) tempMax++; } if(max<tempMax) max=tempMax; } System.out.println(B.length()-(max+len)); } } }
阅读全文
0 0
- 编程题赏析
- 编程题赏析2
- 编程题赏析3
- 编程题赏析4之微信红包
- 赏析
- 赏析
- 文科期末考试趣题赏析
- 《南园》赏析
- 水调歌头 赏析
- 佳句赏析
- 宋词赏析
- 《爱莲说》赏析
- 《咏鹅》赏析
- 《望岳》赏析
- 《绝句》赏析
- 《锄禾》赏析
- rtmutex赏析
- 博弈论赏析
- 《不要温和地走进那个良夜》(英国诗人狄兰·托马斯)
- 数据结构与算法(29)——查找习题(一)
- ASP自动隐藏数据库中内容为空的字段(以图片为例)
- 距离变换
- 机器学习实战笔记(Python)-01-K近邻算法(KNN)
- 编程题赏析
- 设计模式(1)
- Java中static关键字
- ACRA崩溃报告详解
- 文章标题
- C语言项目—银行储蓄系统
- HashMap源码分析(基于JDK1.6)
- 状压dp POJ3254+POJ1185
- 初入HTML-个人简历