java刷题练习-算法树蓝桥基础1-3

1、切面条

原题链接:(6条消息) 技能树答题 (csdn.net)

题目

一根高筋拉面,中间切一刀,可以得到2根面条。

如果先对折1次,中间切一刀,可以得到3根面条。

如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢?

问题分析

//处理不折叠的情况意外,每次对折会新增两根

//理论分析,每次 是在原有的基础上 新增了二倍的条数、

//因为是连续对折,可以通过连续累加计算,

//每次是都是二的指数增加

//计算,对折次数和段数的关系

//0-2. 1-3。 2-5 3-9 规律分析,二的对折次数的次方加1

代码实现

package 刷题;

import java.util.Scanner;

public class 切面条 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
   
        Scanner sc = new Scanner(System.in);
        double x = sc.nextInt();
        sc.close();
        double duan = Math.pow(2, x)+1;
        System.out.println(duan);
        int res = (int)duan;
        System.out.println(res);
    }

}

输入测试数据,结果正确

大衍数列

原题链接:(6条消息) 技能树答题 (csdn.net)

题目

中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。

它的前几项是:0、2、4、8、12、18、24、32、40、50 …

其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。

以下的代码打印出了大衍数列的前 100 项。

请填补空白处的内容。

问题分析

//是指就是在分别为0、奇数、偶数时进行不同运算

//由自然数计算得出的数列所以直接用循环的i即可

//利用取模运算判断奇数偶数,运算输出即可

//其规律是:

//对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。

//?这里计入0,毕竟0也是偶数,所以开头会有两个0

代码实现

package 刷题;

public class 大衍数列 {
    public static void main(String[] args) {        
        for (int i = 0; i < 101; i++) {
            if (i%2==0) {
                int res = (i*i)/2;
                System.out.println(res);
            }else if (i%2!=0) {
                int res1 = ((i*i)-1)/2;
                System.out.println(res1);
            }
        }
    }

}

输出结果(部分)

门牌制作

题目

/*小蓝要为一条街的住户制作门牌号。

这条街一共有 2020 位住户,门牌号从 1 到 2020 编号。

小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,

最后根据需要将字符粘贴到门牌上,

例如门牌 1017 需要依次粘贴字符 1、0、1、7,

即需要 1 个字符 0,2 个字符 1,1 个字符 7。

请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?*/

问题分析

//向知道需要多少个2

//可以通过遍历每一个门派

//然后获取每一位,如果是2就计数

代码实现

package 刷题;

public class 门派制作2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        int count = 0;
        for(int i=1;i<=2020;i++){
            int x =i;//直接使用i,会发生死循环..........
            while(x>0){
                if(x%10==2){//取模10检查每一位是否为2,为2的话,计数+1
                    count++;
                }
                x=x/10;//获取每一位结合取模
            }
        }
        System.out.println(count);

        }
    }

输出结果624

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CLODVEP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值