黑马程序员技术交流社区

标题: 怎样将一段数字按其相反的顺序输出 [打印本页]

作者: 右哼哼    时间: 2014-1-9 09:59
标题: 怎样将一段数字按其相反的顺序输出
怎样将一段数字按其相反的顺序输出??还有步长为2是什么意思??穷举法是什么意思??怎样使用穷举法??我是新手请见谅,有好多不懂的问题,麻烦大家啦!!
作者: 林成彬    时间: 2014-1-9 10:20
其实有一种方面很简单,你将这段数字转成字符串类型,因为在string类型中,string[0]就代表这第一个字符,如此类推,最后的字符就是string[string.length-1],你只需要将这个字符串反方向遍历一下就可以从尾开始取到数字,然后放进一个新变量就可以了
作者: 蛋壳    时间: 2014-1-9 12:23
分析:所谓反序就是两两交换位置输出的结果.
                把数组中第一个元素(num[i])各最后一个元素num[num.length-i-1](因为下标是从0开始的所以要-1)进行交换,
                需要length/2次才能交换完所有的元素.               
           int[] num = { 5, -8, 3, 9, 0, 3 ,-2,};
            for (int i = 0; i < num.Length/2; i++)
            {
                int temp = num[i];
                num[i] = num[num.Length - 1 - i];
                num[num.Length - 1 - i] = temp;
            }
            for (int i = 0; i < num.Length; i++)
            {
                Console.WriteLine(num[i]);
            }
            Console.ReadKey();   
作者: 念~    时间: 2014-1-9 14:25
穷举就是把有可能的组合全部列出来,穷意为尽,全部的意思,可以百度一下

至于步长为2,在for(int i=0;i<10;i++)循环中的第三个参数一般为i++,这个步长为1,步长为2,就是i+=2; i的值一次增长为2,
作者: 右哼哼    时间: 2014-1-9 16:34
标题: RE: 怎样将一段数字按其相反的顺序输出
林成彬 发表于 2014-1-9 10:20
其实有一种方面很简单,你将这段数字转成字符串类型,因为在string类型中,string[0]就代表这第一个字符,如此 ...

可是怎样从尾取数啊?
作者: 林成彬    时间: 2014-1-9 16:38
右哼哼 发表于 2014-1-9 16:34
可是怎样从尾取数啊?

for(int i = string.length-1;i>0;i--)
{
    string就是从尾开始取的数
}
作者: 林成彬    时间: 2014-1-9 16:40
打漏了,是string[i],就是从尾开始取的数,也算反序吧
作者: 右哼哼    时间: 2014-1-9 16:47
右哼哼 发表于 2014-1-9 16:34
可是怎样从尾取数啊?

从尾取数怎么取啊?

作者: 右哼哼    时间: 2014-1-9 16:49
林成彬 发表于 2014-1-9 16:38
for(int i = string.length-1;i>0;i--)
{
    string就是从尾开始取的数

明白 明白 谢谢啊!!你真聪明!!
作者: 一席倾城    时间: 2014-1-9 18:04
for (int i = num.Length - 1; i >= 0; i -= 2)//步长为2就是i -= 2或者i += 2,,穷举法就是完全把数组或者
            {                                              //字符串遍历一遍,搞出所有可能的情况
                Console.Write(num[i]+" ");
            }
作者: dlwcg    时间: 2014-1-10 17:43
标题: 是这个意思吧?结贴吧。
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace ConsoleApplication1
  6. {
  7.     class Program
  8.     {
  9.         //怎样将一段数字按其相反的顺序输出??还有步长为2是什么意思??
  10.         //穷举法是什么意思??怎样使用穷举法??我是新手请见谅,有好多不懂的问题,麻烦大家啦!!
  11.         static void Main(string[] args)
  12.         {
  13.             int num = 1234567;
  14.             Console.WriteLine("初始数字为:"+num+"\n");
  15.             string numS = num.ToString();
  16.             string[] tempS = new string[numS.Length];
  17.             string finalS = "";

  18.             for (int i = 0; i < numS.Length; i++)
  19.             {
  20.                 tempS[i] = Convert.ToString(numS[numS.Length - 1 - i]);
  21.                 finalS += tempS[i];
  22.             }            
  23.             int finalI = Convert.ToInt32(finalS);
  24.             Console.WriteLine("反向输出为:"+finalI);
  25.             Console.ReadKey();
  26.             //输出结果为:
  27.             //初始数字为:1234567
  28.             //
  29.             //反向输出为:7654321
  30.         }
  31.     }
  32. }
复制代码



作者: 十月April    时间: 2014-1-22 22:16
将字符串转化为字符数组,再将按for(int i=str.length-1;i>=0;i--)console.write(ch);
作者: 李稳023    时间: 2014-1-31 19:45
  1.    int[] num = { 11, 16, 18, 22, 28, 31, 42, 53, 66, 79, 81, 99 };
  2.             for (int i = 0; i < num.Length; i++)  //控制比较的趟数
  3.             {

  4.                 for (int j = 0; j < num.Length - 1 - i; j++) //控制比较的次数
  5.                 {
  6.                     if (num[j] < num[j + 1])            //注意:这里容易做错,写成num[i]了,不要马虎
  7.                     {
  8.                         int temp = num[j];              //声明一个temp来接收num[j]的值,以作于num[j]与num[j+1]中转站
  9.                         num[j]=num[j+1];
  10.                         num[j + 1] = temp;
  11.                     }
  12.                 }
  13.             }
  14.             for (int i = 0; i < num.Length; i++)        //创建一个for循环,用来输出数组的反向遍历
  15.             {
  16.                 Console.Write(num[i]+" ");
  17.             }
  18.             Console.ReadKey();
复制代码






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2