首页 新闻 会员 周边 捐助

切面条!哪里错了

0
[已关闭问题] 关闭于 2014-10-14 22:18
标题:切面条

    一根高筋拉面,中间切一刀,可以得到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;
            }

        }
爱编程1314的主页 爱编程1314 | 初学一级 | 园豆:26
提问于:2014-10-14 17:54
< >
分享
所有回答(3)
0

1*(2的10次方)+1

吴瑞祥 | 园豆:29449 (高人七级) | 2014-10-14 18:11

不是啊,我是请你帮我纠正这个程序有什么问题呢,我想自己输入数据,不输入10 啊

支持(0) 反对(0) 爱编程1314 | 园豆:26 (初学一级) | 2014-10-14 18:13

@爱编程1314: 首先论层你每折一次层数*2,切一刀后2边都为层数/2,开口侧多出1条

你直接return 2^i +1;就行了

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-10-14 18:31

@吴瑞祥: 

int a,s;
    scanf("%d", &a);
    s = 2^a + 1;
    printf("%d",s);

烦死了,是这样写吧,怎么输入0,它返回的是3,输入1返回的是0,哎。。。。。。

支持(0) 反对(0) 爱编程1314 | 园豆:26 (初学一级) | 2014-10-14 18:54

@爱编程1314: 输入0返回的是1,输入1返回的是3.你先看下2的0次方和1次方的值,再加

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2014-10-14 21:12
0

不就是 2的N次方+1 吗?

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-10-14 18:50

你调试一下看看

支持(0) 反对(0) 爱编程1314 | 园豆:26 (初学一级) | 2014-10-14 18:57
0
            int i,s;
            i = Convert.ToInt32(Console.ReadLine());
            s = Convert.ToInt32(Math.Pow(2,i)) + 1;
            Console.WriteLine(s); 
爱编程1314 | 园豆:26 (初学一级) | 2014-10-14 22:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册