切面条/猜字母/大衍数列/奇怪的分式

题目2、切面条

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

如果连续对折2次,中间切一刀,可以得到5根面条。

那么,连续对折10次,中间切一刀,会得到多少面条呢?

答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。

【解析】:可以拿张纸自己撕一下

n 0 1 2 3 4 

sum 2 3 5 9 17 

每次相加的都是2的整数次幂。

【答案】1025
import java.util.*;
 
public class Main {
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		int n = cin.nextInt();
		int sum = 2;
		for (int i = 1; i <= n; i++)
			sum += Math.pow(2, i - 1);
		System.out.println(sum);
	}
}

题目3、猜字母

把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。

接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。

得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。

答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。

【解析】:先将2014个字符放到char类型的数组中,将序列中偶数位置的数放在数组前面,直到记录的长度为1,输出序列中第一个数即为答案。

【答案】:q
public class Main {
	public static void main(String[] args) {
		String s="abcdefghijklmnopqrs";
		String ss="";
		for(int i=1;i<=106;i++) {
			ss+=s;
		}
		char[] x=ss.toCharArray();
		int length=x.length;
		while(length!=1) {
			int k=0;
			for(int i=0;i<length;i++) {
				if(i%2!=0)
					x[k++]=x[i];
				else length--;
			}
		}
		System.out.println(x[0]);
	}
}

题目4、大衍数列

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

它的前几项是:0248121824324050 …

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

以下的代码打印出了大衍数列的前 100 项。
for(int i=1; i<100; i++)
{
if(________________)  //填空
System.out.println(i*i/2);
else
System.out.println((i*i-1)/2);
}
【答案】:i%2==0

题目6、奇怪的分式

上小学的时候,小明经常自己发明新算法。一次,老师出的题目是:
1/4 乘以8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45
(参见图1.png)老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼!对于分子、
分母都是1~9 中的一位数的情况,还有哪些算式可以这样计算呢?请写出所有不同算式的个数(包括题中举例的)。显然,交换分子分母后,例如:4/1 乘以5/8 是满足要求的,这算做不同的算式。
但对于分子分母相同的情况,2/2 乘以3/3 这样的类型太多了,不在计数之列!
import java.util.*;
 
public class Main {
	public static void main(String[] args) {
		int sum = 0;
		for (int a = 1; a < 10; a++)
			for (int b = 1; b < 10; b++)
				for (int c = 1; c < 10; c++)
					for (int d = 1; d < 10; d++)
						if (a != b && c != d
								&& a * c * (b * 10 + d) == b * d * (a * 10 + c)) {
							System.out.println(a + "/" + b + " " + c + "/" + d);
							sum++;
						}
		System.out.println(sum);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值