c#.net窗体程序之for循环案例以及逻辑思路

题目: //1.求出1-1000之间的水仙花数
//2.求出1-10000之间的回文数
3. 一球从h米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第n次落地时,共经过多少米?第n次反弹多高?
4.3个可乐瓶可以换一瓶可乐,现在有364瓶可乐。问一共可以喝多少瓶可乐,剩下几个空瓶!
5.猴子每天吃总数一半多一个桃子,第n天只剩下一个桃子。用户输入天数n,开始时桃子的总数
6.用一百元买一百只鸡,公鸡5元一只,母鸡3元一只,小鸡1元三只保。证总共花了100元,遍历所有能买鸡的情况,求买鸡数为100的情况
外加两道思考题:1.你让工人为你工作7天,回报是一根金条,这个金条平分成相连的7段,你必须在每天结束的时候给他们一段金条。如果只允许你两次把金条弄断,你如何给你的工人付费?

答案: 编号(1、2)( 3) (4、5、6、7)
第一天:给3号金条;
第二天:用1、2 换回 3
第三他:再给3号;
第四天:用4、5、6、7换回12和3;
第五天:再给3号
第六天:用1、2换回3号
第七天:给3号。

2.烧一根不均匀的绳要用一个小时,如何用它来判断半个小时?烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢?

一根绳子从两头烧,烧完就是半个小时。

一根要一头烧,一根从两头烧,两头烧完的时候(30分),将剩下的一根另一端点着,烧尽就是45分钟。再从两头点燃第三根,烧尽就是1时15分。
设计界面如下:
c#.net窗体程序之for循环案例以及逻辑思路_第1张图片

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 案例练习
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //1.求出1-1000之间的水仙花数
        private void button1_Click(object sender, EventArgs e)
        {
            for (int i = 100; i < 1000; i++)
            {
                int a = i/100;
                int c = i %10;
                int b = (i/10)%10;
                if (a*a*a+b*b*b+c*c*c==i)
                {
                    label1.Text += i.ToString() + ",";
                }
            }
        }
        //2.求出1-10000之间的回文数
        private void button2_Click(object sender, EventArgs e)
        {
            for (int i = 100; i < 10000; i++)
            {
                int qian = (i % 10000) / 1000;
                int bai = (i % 1000) / 100;
                int shi = (i % 100) / 10;
                int ge = i % 10;
                if (i < 1000 && bai == ge)
                {
                    listBox1.Items.Add(i);
                }
                if (i < 10000 && i > 1000 && bai == shi && qian == ge)
                {
                    listBox1.Items.Add(i);
                }
            }
        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 逻辑练习案例
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 一球从h米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 第n次落地时,共经过多少米?第n次反弹多高?
            float height = 100;//小球初始高度
            float n = 0;//经过的距离
            for (int i = 1; i <=5; i++)
            {
                //第一次弹起距离为,从100米处落下,弹起50米,经过150米,第二次落下50米,弹起25米,经过75米,以此类推...
                n += height + height / 2;
                height /= 2;
            }
            label1.Text = "经过了" + n + "米,第5次反弹" + height + "米";
        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 案例练习_可乐_
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //3个可乐瓶可以换一瓶可乐,现在有364瓶可乐。问一共可以喝多少瓶可乐,剩下几个空瓶!
            int colo = 364;//可乐数量
            int count = 0;//记录喝的数量
            while (colo>=3)
            {
                colo -= 2;
                count += 3;
            }
            count += colo;
            label1.Text = "一共可以喝" + count + "瓶可乐,剩下" + colo + "个空瓶";
        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 案例练习_猴子_
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //猴子每天吃总数一半多一个桃子,第n天只剩下一个桃子。用户输入天数n,开始时桃子的总数
            int t = 1,s=1;
            for (int i = 1; i < 10; i++)
            {
                s = (s + 1) * 2;
                t = s / 2 + 1;
            }
            label1.Text = "第一天吃桃子数量为:" + t;
        }
    }
}

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace 案例练习_买鸡_
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // 用一百元买一百只鸡,公鸡5元一只,母鸡3元一只,小鸡1元三只保证总共花了100元,遍历所有能买鸡的情况,求买鸡数为100的情况
            int n = 0;
            for (int xiaoji = 1; xiaoji <= 100; xiaoji++)
            {
                for (int mj = 1; mj <= 33; mj++)
                {
                    for (int gj = 1; gj <= 20; gj++)
                    {
                        if (xiaoji+mj+gj==100&&xiaoji/3+mj*3+gj*5==100)
                        {
                            //label2.Text = "公鸡" + gj + "母鸡" + mj + "小鸡" + xiaoji;
                            n++;
                        }
                    }
                }
            }
            label1.Text = "总共有" + n + "种情况";
        }
    }
}

你可能感兴趣的:(c#.net窗体程序之for循环案例以及逻辑思路)