标题:切面条 一根高筋拉面,中间切一刀,可以得到2根面条。 如果先对折1次,中间切一刀,可以得到3根面条。 如果连续对折2次,中间切一刀,可以得到5根面条。 那么,连续对折10次,中间切一刀,会得到多少面条呢? 答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。
static void Main(string[] args) { int b = Convert.ToInt32(Console.ReadLine()); if (b >= 0 && b <= 10) { Console.WriteLine(A(b)); } } static public int A(int i) { int s; if (i == 0) { return 2; } else { s = A(i - 1) + 2^(i - 1); return s; } }
1*(2的10次方)+1
不是啊,我是请你帮我纠正这个程序有什么问题呢,我想自己输入数据,不输入10 啊
@爱编程1314: 首先论层你每折一次层数*2,切一刀后2边都为层数/2,开口侧多出1条
你直接return 2^i +1;就行了
@吴瑞祥:
int a,s; scanf("%d", &a); s = 2^a + 1; printf("%d",s);
烦死了,是这样写吧,怎么输入0,它返回的是3,输入1返回的是0,哎。。。。。。
@爱编程1314: 输入0返回的是1,输入1返回的是3.你先看下2的0次方和1次方的值,再加
不就是 2的N次方+1 吗?
你调试一下看看
int i,s; i = Convert.ToInt32(Console.ReadLine()); s = Convert.ToInt32(Math.Pow(2,i)) + 1; Console.WriteLine(s);