蓝桥杯有奖猜谜

这道题不难,具体内容主要介绍toCharArray();这个方法,如何用,什么时候用

Question:

小明很喜欢猜谜语。
最近,他被邀请参加了X星球的猜谜活动。


每位选手开始的时候都被发给777个电子币。
规则是:猜对了,手里的电子币数目翻倍,
猜错了,扣除555个电子币, 扣完为止。


小明一共猜了15条谜语。
战果为:vxvxvxvxvxvxvvx
其中v表示猜对了,x表示猜错了。


请你计算一下,小明最后手里的电子币数目是多少。


请填写表示最后电子币数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

Answer:

多写几个方法,归根结底,方法思路都是一样,写下来就是为了多变化一下思维

方法1:

 1 class Day1 {
 2     public static void main(String[] args) {
 3         int count = 777;
 4         String s = "vxvxvxvxvxvxvvx";
 5         char[] c = s.toCharArray();
 6 
 7         for (int i = 0; i < c.length; i++) {
 8             if (c[i] == 'v') {
 9                 count *= 2;
10             } else if (c[i] == 'x') {
11                 count -= 555;
12             }
13         }
14         System.out.println(count);
15     }
16 }

toCharArray()的方法:将字符串转换为字符数组

当要比较的内容偏多的时候,可以用采用toCharArray()方法将字符串里边的内容直接转换为字符数组;少来少去的,就直接按方法二来进行

 

方法2:

 1 class Day1{
 2     public static void main(String[] args){
 3         int count = 777;
 4         String[] s = {"v","x","v","x","v","x","v","x","v","x","v","x","v","v","x"};
 5         for(int i = 0;i<s.length;i++){
 6             if(s[i]=="v"){
 7                 count = count * 2;
 8             }else{
 9                 count = count - 555;
10             }
11         }
12         System.out.println(count);
13     }
14 }

适用于比较内容较少的,直接用字符串,简单快捷

方法3:

直接采用for循环来计算,但是相对来说比较麻烦

 

总结:

1:尽量让思维灵活,不要在一棵树上不下来,换个不同的角度来看问题

2:一个解决方案,尽量选最优的,不要求完美,但是尽量追求完美

 

如有个别回答错误,评论指出,我必更改,谢谢!😝

 

posted @ 2019-01-23 14:25  高欣的博客  阅读(502)  评论(0编辑  收藏  举报