Unity3D特效百例 | 案例项目实战源码 | Android-Unity实战问题汇总 |
---|---|---|
游戏脚本-辅助自动化 | Android控件全解手册 | 再战Android系列 |
Scratch编程案例 | 软考全系列 | Unity3D学习专栏 |
蓝桥系列 | ChatGPT和AIGC |
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,获取更多支持,交流让学习不再孤单。
30年的改革开放,给中国带来了翻天覆地的变化。2011全年中国手机产量约为11.72亿部。手机已经成为百姓的基本日用品!给手机选个好听又好记的号码可能是许多人的心愿。
但号源有限,只能辅以有偿选号的方法了。
这个程序的目的就是:根据给定的手机尾号(4位),按照一定的规则来打分。其规则如下:
package Question1_9;
import java.util.Scanner;
import java.util.Stack;
import java.util.Vector;
public class Question5 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int n=scanner.nextInt();
scanner.nextLine();
while ((n--)>0) {
String telphone=scanner.nextLine();
int sum=0;
/*
* 情况一
*/
if(telphone.charAt(0)-telphone.charAt(1)==1){
char ch=telphone.charAt(0);
int index=0;
while (index<4&&ch==telphone.charAt(index)) {
ch--;
index++;
}
if(index>=4){
sum+=5;
}
}
if (telphone.charAt(0)-telphone.charAt(1)==-1) {
char ch=telphone.charAt(0);
int index=0;
while (index<4&&ch==telphone.charAt(index)) {
ch++;
index++;
}
if(index>=4){
sum+=5;
}
}
/*
* 情况二
*/
if (telphone.charAt(0)==telphone.charAt(1)&&telphone.charAt(1)==telphone.charAt(2)) {
sum+=3;
}
if(telphone.charAt(1)==telphone.charAt(2)&&telphone.charAt(2)==telphone.charAt(3)){
sum+=3;
}
/*
* 情况三
*/
if(telphone.charAt(0)==telphone.charAt(1)&&telphone.charAt(2)==telphone.charAt(3)){
sum+=1;
}
if(telphone.charAt(0)==telphone.charAt(2)&&telphone.charAt(1)==telphone.charAt(3)){
sum+=1;
}
/*
* 情况四
*/
for (int i = 0; i < 4; i++) {
if(telphone.charAt(i)=='6'||telphone.charAt(i)=='8'||telphone.charAt(i)=='9'){
sum+=1;
}
}
System.out.println(sum);
}
}
}
运行结果:
14
3045
0211
…..
…..
……
8
5
俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。
有一种赌局是这样的:桌子上放六个匣子,编号是1至6。多位参与者(以下称玩家)可以把任意数量的钱押在某个编号的匣子上。
所有玩家都下注后,庄家同时掷出3个骰子(骰子上的数字都是1至6)。输赢规则如下:
package Question10_19;
importjava.util.Scanner;
publicclass Question14 {
publicstaticvoid main(String[] args) {
int a,b,c,d,sum = 0;
for (int i = 0; i < 500000; i++) {
a=(int) (Math.random()*6)+1;
b=(int) (Math.random()*6)+1;
c=(int) (Math.random()*6)+1;
d=(int) (Math.random()*6)+1;
// System.out.println(a+" "+b+" "+c+" "+d);
if(a==b&&a==c&&a==d){
sum-=6;
}elseif((a==b&&a==c)||(a==c&&a==d)||(a==b&&a==d)){
sum-=2;
}elseif(a==b||a==c||a==d){
sum-=1;
}elseif ((a*b==c*d)||(a*c==b*d)||(a*d==b*c)) {
sum-=0;
}else {
sum+=1;
}
}
System.out.printf("%.3f",sum/500000f);
}
}
程序输出:
0.021
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。
大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上(可以借助第三根柱子做缓冲)。
并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
如图【1.jpg】是现代“山寨”版的该玩具。64个圆盘太多了,所以减为7个,
金刚石和黄金都以木头代替了…但道理是相同的。
据说完成大梵天的命令需要太多的移动次数,以至被认为完成之时就是世界末日!
你的任务是精确计算出到底需要移动多少次。
很明显,如果只有2个圆盘,需要移动3次。
圆盘数为3,则需要移动7次。
那么64个呢?
package Question40_49;
import java.math.BigInteger;
import java.util.Scanner;
public class Question42MustRemember {
public static BigInteger count=BigInteger.valueOf(0);
public static void move(int from,int to) {
// System.out.println(from+"--->"+to);
count=count.add(BigInteger.valueOf(1));
}
public static void hanoi(int n,int from,int to,int assist) {
if(n>0){
hanoi(n-1, from, assist, to);
move(from, to);
hanoi(n-1, assist, to, from);
}
}
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
// int n=scanner.nextInt();
for (int i = 1; i <= 100; i++) {
long startTime = System.currentTimeMillis(); // 程序开始时间
hanoi(i, 1, 2, 3);
long endTime = System.currentTimeMillis(); // 程序结束时间
System.out.println("n="+String.format("%4d", i)+" 时,耗时"+String.format("%f", (endTime-startTime)/1000f)+"秒, 移动了"+count+" 次 ");
count=BigInteger.valueOf(0);
}
}
}
黄金分割数0.61803… 是个无理数,这个常数十分重要,在许多工程问题中会出现。有时需要把这个数字求得很精确。
对于某些精密工程,常数的精度很重要。也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!
言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。
比较简单的一种是用连分数:
1
黄金数 = ---------------------
1
1 + -----------------
1
1 + -------------
1
1 + ---------
1 + …
这个连分数计算的“层数”越多,它的值越接近黄金分割数。
请你利用这一特性,求出黄金分割数的足够精确值,要求四舍五入到小数点后100位。
小数点后3位的值为:0.618
小数点后4位的值为:0.6180
小数点后5位的值为:0.61803
小数点后7位的值为:0.6180340
(注意尾部的0,不能忽略)
你的任务是:写出精确到小数点后100位精度的黄金分割值。
注意:尾数的四舍五入!尾数是0也要保留!
显然答案是一个小数,其小数点后有100位数字,请通过浏览器直接提交该数字。
import java.math.BigInteger;
public class test5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
BigInteger one = BigInteger.ONE;
BigInteger ten = BigInteger.TEN;
BigInteger a = one;
BigInteger b = one.add(one.add(one));
BigInteger c = b;
BigInteger sum = BigInteger.ONE;
for(int i=0;i<300;i++){//需要精确到100位,所以循环次数要适当
sum = a;
for(int j=0;j<101;j++){//需要把小数点向右移动101位
sum = ten.multiply(sum);
}
BigInteger res = sum.divide(c);
c = a.add(b);
a = b;
b = c;
if(res.toString().length()==101){//要判断到101位,需要四舍五入
System.out.println(res);
}
}
}
}
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步??,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功??,我分文不取,若不成功??,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。