日期:2014-05-18  浏览次数:20969 次

c#题目求教
1、输出数字塔 就是1 121 12321 这样的。。。 2、就是输入n,在1-100这100个序号中,1-100头尾相接,从1开始数,逢n的序号将被删除,求最后留下的那个序号值。



各位大神啊,帮忙啊,老师上4节课大半本书就没了啊,这让我情何以堪啊,什么都不会。。。。。。。备注:都要在窗体中实现。

------解决方案--------------------
第一个就是
1的平方,11的平方,111的平方,1111的平方....


------解决方案--------------------
数字塔
C# code

      static void Main(string[] args)
      {
          int m = Convert.ToInt32(Console.ReadLine());
          for (int i = 1; i <= m; i++)
          {
              for (int j = 1; j <= i; j++)
              {
                  Console.Write(j);
              }
              for (int j = i-1; j >=1; j--)
              {
                  Console.Write(j);
              }
              Console.Write('\n');
          }
          Console.ReadLine();
      }

------解决方案--------------------
探讨

我要的是那个窗体中的,是面向对象的

哈哈哈哈哈哈哈,笑死我了。楼主,别学这个了,不适合你。

------解决方案--------------------
我想第二道题可以做一个循环链表,然后遍历表,每到第n个元素时就删除该元素,直到剩下的元素个数小n为止.
------解决方案--------------------
第二道题:
C# code
namespace ConsoleApplication5
{
    class Node
    {
        public int Value;
        public Node Next, Prior;
        public Node(int value)
        {
            Value = value;
        }
    }

    class Link
    {
        private Node Head, Tail;
        private int Amount;

        public Link()
        {
            for (int i = 1; i <= 100; i++)
            {
                Add(new Node(i));
            }
            Tail.Next = Head;
            Head.Prior = Tail;
        }

        private void Add(Node node)
        {
            if (Head == null)
                Head = Tail = node;
            else
            {
                node.Prior = Tail;
                Tail.Next = node;
                Tail = node;
            }
            Amount++;
        }

        public void DispNode()
        {
            Node node = Head; 
            for(int i = 1;i<=Amount;i++)
            {
                Console.WriteLine(node.Value);
                node = node.Next;
            }
        }

        private void Delete(Node node)
        {
            if (Head == node)
                Head = node.Next;
            node.Prior.Next = node.Next;
            node.Next.Prior = node.Prior;
            Amount--;
        }

        public void Account(int n)
        {
            Node node = Head;
            int i = 1;
            while (Amount >= n)
            {
                if (i++ == n)
                {
                    Delete(node);
                    i = 1;
                }
                node = node.Next;
            }
        }
            
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            Link link = new Link();
            link.Account(5);
            link.DispNode();

            Console.ReadKey();
        }
    }