当前位置:编程学习 > C#/ASP.NET >>

一道关于C#的编程题目

有8*8=64个格子
第1个格子上放1个小麦
第2个格子上放2个小麦
第3个格子上放4个小麦
第4个格子上放8个小麦
每个格子放的小麦都是前一个格子的2倍
需要多少小麦才能把格子摆满
迭代
变量定义成double类型
追问:能不能格式写得清楚点
答案:

namespace Test
{
    public class Program
    {
        public static void Main(string[] args)
        {
            InputBox(1, 1, 1);
            Console.ReadLine();
        }
        public static void InputBox(int BoxCount,double InputXM,double XMCount) {
            if (BoxCount < 0 || BoxCount > 64)
            {
                Console.WriteLine("格子已经装满,一共{0}个小麦",XMCount);
                return;
            }
            else
            {
                Console.WriteLine(string.Format("第{0}个格子,上面放{1}个小麦!", BoxCount, InputXM));
                InputBox(BoxCount+=1, InputXM *= 2,XMCount+=InputXM);
            }
        }

    }
}

 class Program
    {
        static void Main(string[] args)
        {
            D aa = new D();
            aa.DD();
            Console.ReadKey();
        }
    }
    public class D
    {

        public double sum = 2.0;

        public void DD()
        {
            for (int i = 0; i < 64; i++)
            {
                if (i == 0)
                {
                    Console.WriteLine("第1个格子上放1个麦子");
                }
                else if(i==1)
                {
                    Console.WriteLine("第{0}个格子上放{1}个麦子", 2, 2);
                }
                else
                {
                    sum *= 2;
                    Console.WriteLine("第{0}个格子上放{1}个麦子", i + 1, sum);
                }
            }
        }

    }


for(inti=1;i<10;i ){stringa="";for(intj=1;j<=i;j ){a =j;}for(intk=i-1;k>0;k--){a =k;}//输出}//乘法表也差不多,for(inti=1;i<10;i ){//控制行stringb="";//表达输出定义变量for(intj=1;j<i;j ){b =i "*" j "";//表达累加}//行输出b//现在写有点不规范} 忘回车了。for(inti=1;i<10;i ){stringa=""; for(intj=1;j<=i;j ){ a =j; } for(intk=i-1;k>0;k--){ a =k; } //输出}//乘法表也差不多, for(inti=1;i<10;i ){//控制行stringb="";//表达输出定义变量 for(intj=1;j<i;j ){ b =i "*" j "";//表达累加 }//行输出b}这样写应该好看了吧

using System;
public class Test
{
     public static void Main(string[] args)
     {
            double sum = 1.0;
            double seed = 1.0;
    for(int i=1; i<64; i++)
    {
                 sum += seed;
 seed *= 2;
    }
           Console.WriteLine("Total:{0}", sum);
     }
}

double sum=0,t=1;

int i=0;

while(i++<64)

{sum+=t;

t*=2;

}

Console.WriteLine("Total:{0}", sum);

举个例子,希望有所帮助。

代码

        private void buttonConfirm_Click(object sender, EventArgs e)
        {
            //有8*8=64个格子
            //第1个格子上放1个小麦
            //第2个格子上放2个小麦
            //第3个格子上放4个小麦
            //第4个格子上放8个小麦
            //每个格子放的小麦都是前一个格子的2倍
            //需要多少小麦才能把格子摆满
            //迭代
            //变量定义成double类型

            //格子布局
            int num = 8;
            //初始化
            double sum = 1.0;
            double sd = 1.0;
            for (int i = 1; i < num * num; i++)
            {
                sum += sd;
                sd *= 2;
            }
            MessageBox.Show("需要" + sum.ToString() + "小麦", "提示信息");          

        }

 

结果

上面的全有错啊。人家是64个格子啊。那循环条件应该是

 for(int i=1; i=<

上一个:C++编程语言和C#编程语言有什么区别?
下一个:C# 编程 dt.rows[i] 如何反射出DataTable中行的属性和属性对应的值

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,