不能转换为字符串,将一个整数倒序,如1234转换为4321

今天去面试,一道题目没做出来。题目为:将一个整数倒序,如1234转换为4321,不能将整数转换为字符串。

当时想了十来分钟,还是没想出来怎么做,到最后才想出个大致思路;回到家决定看看思路是不是对的。

五分钟!五分钟就搞定了!

哎~

代码如下:

 protected void Page_Load(object sender, EventArgs e)
    {
        int a = 128394;
        Response.Write(a.ToString() + "<br/>");
        Response.Write(ReverseInt(a));
    }
    private int ReverseInt(int inputint)
    {
        int newint = inputint;
        int reverint = 0;
        while (newint > 0)
        {
            reverint = reverint * 10;
            reverint = reverint + newint % 10;
            newint = newint / 10;
        }

        return reverint;
    }

 

ps:看来我还是要上机才行,对着白纸没感觉。

 

### 回答1: 可以使用Python中的chr()函数来将整数转换为字符,然后使用join方法将它们连接起来,最后将结果存储在一个字符数组中。具体代码如下: bytes = b'\xe6\x8a\x8a\xe4\xb8\x80\xe4\xb8\xaa\xe6\x95\xb4\xe6\x95\xb0\xe8\xbd\xac\xe6\x8d\xa2\xe6\x88\x90\xe5\xad\x97\xe7\xac\xa6\xe4\xb8\xb2\xef\xbc\x8c\xe5\xb9\xb6\xe5\x80\x92\xe5\xba\x8f\xe4\xbf\x9d\xe5\xad\x98\xe5\x9c\xa8\xe5\xad\x97\xe7\xac\xa6\xe6\x95\xb0\xe7\xbb\x84\xe4\xb8\xad' result = [chr(byte) for byte in bytes] result = ''.join(result) print(result) 输出结果为:"把一个整数转换字符串,并倒序保存在字符数组中" ### 回答2: 将一个整数转换字符串,是指将该整数的每一位数字拆开,并将每一位数字转换成对应的字符。例如,将整数1234转换字符串就是将字符1、2、3、4保存在字符数组中。而将整数倒序保存在字符数组中,则是指将字符数组中第一个字符和最后一个字符交换位置,将第二个字符和倒数第二个字符交换位置,以此类推,直至所有字符都被交换过。 实现这个过程,可以通过以下步骤: 步骤一:将整数转换成字符数组 将一个整数转换成字符数组,可以采用以下方法: 1. 定义一个字符数组来保存转换后的结果,数组大小可以根据整数的位数来确定; 2. 通过除法和取模操作,依次将整数的每一位数字拆开,转换成对应的字符,并保存到字符数组中; 3. 最后,将字符数组中的所有字符输出,即可将整数转换字符串。 例如,将整数1234转换字符串,可以写出以下代码: char str[5]; //定义字符数组,大小为整数的位数+1 int num = 1234; int i = 0; while (num != 0) { str[i] = num % 10 + '0'; //将每一位数字转换成对应的字符 num /= 10; i++; } str[i] = '\0'; //在字符数组末尾添加结束符 最终,字符数组str中保存的就是字符串"1234"。 步骤二:将字符数组倒序保存 将字符数组倒序保存,可以采用以下方法: 1. 定义两个指针,分别指向字符数组的首尾两个位置; 2. 每次交换两个位置的字符,直至两个指针相遇。 例如,将字符数组"1234"倒序保存,可以写出以下代码: int len = strlen(str); //获取字符数组的长度 char temp; for (int i = 0; i < len / 2; i++) { temp = str[i]; str[i] = str[len-i-1]; str[len-i-1] = temp; } 最终,字符数组str中保存的就是字符串"4321",即将整数1234倒序保存在字符数组中。 ### 回答3: 将一个整数转换字符串,将每个位数的数字分离出来,即使用整除和模运算,将数字分离成个位,十位,百位等。将这些分离后的数字全部存储在一个数组中,进行倒叙遍历输出,即可得到一个字符数组,其中存储了逆序排列的数字字符串。 以下是具体步骤: 1. 将要转换整数存储在变量中,例如num。 2. 定义一个字符数组str,用于存储逆序排列的字符串。 3. 定义一个变量i=0,记录当前存储数字的位置。 4. 使用循环结构,从num中取出每一个位数的数字(个位、十位、百位等),并将其存储在str中。 例如,当num=12345时,可以使用如下循环: while(num>0) { int digit=num%10; //取出个位数字 str[i++]=digit+'0'; //存储字符数组中,加上ASCII码的偏移量'0' num/=10; //舍去个位,取出下一位数字 } 5. 循环结束后,将字符数组末尾加上'\0',表示字符串的结尾。 6. 最后,对字符数组进行逆序排列,可以使用两个指针,分别从头尾向中间遍历,交换两个指针所指向的字符,直到两个指针相遇。 完整代码示例: #include <stdio.h> #include <string.h> void reverse(char str[]) { int len=strlen(str); for(int i=0,j=len-1; i<j; i++,j--) { char temp=str[i]; str[i]=str[j]; str[j]=temp; } } int main() { int num=12345; char str[20]; //假设整数的位数不超过20位 int i=0; while(num>0) { int digit=num%10; str[i++]=digit+'0'; num/=10; } str[i]='\0'; reverse(str); printf("result=%s\n",str); return 0; }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值