从低位开始取出长整型变量s奇数位上的数
时间: 2023-04-24 18:01:51 浏览: 128
可以通过以下步骤从低位开始取出长整型变量s奇数位上的数:
1. 将s转换为字符串类型,方便进行字符操作。
2. 从字符串的最后一位开始,每隔一个字符取一个字符,即取出奇数位上的数。
3. 将取出的字符转换为数字类型,即可得到长整型变量s奇数位上的数。
示例代码如下:
```python
s = 123456789
s_str = str(s)
odd_digits = []
for i in range(len(s_str)-1, -1, -2):
odd_digits.append(int(s_str[i]))
print(odd_digits)
```
输出结果为:[, 8, 6, 4, 2],即长整型变量s奇数位上的数。
相关问题
从低位开始取出长整型变量s奇数位上的数,依次构成一个新数放在t中
可以使用位运算符和循环来实现:
```cpp
long long s = 123456789;
long long t = 0;
int count = 0;
while(s > 0) {
int digit = s % 10;
s /= 10;
if(count % 2 == 1) {
t = t | (digit << (count - 1));
}
count++;
}
```
首先定义一个长整型变量s和一个计数器count,用于记录当前处理到的位数。然后进入循环,每次从s的最低位取出一位数字,保存到变量digit中,并将s除以10。如果count是奇数,则将digit左移(count-1)位,然后使用按位或运算符将结果与t合并。最后增加计数器count的值。循环继续,直到s变为0为止。最终t中保存的就是s奇数位上的数字构成的新数。
从低位开始取出长整型变量s奇数位上的数,依次构成一个新数放在t中。例如:当s中的数为:7654321时,t中的数为:7531。在主函数中输入数s,编写一个函数实现题目要求的功能,将构成的新数返回主函数输出。h
好的,我理解了你的问题。以下是实现题目要求的函数的代码(使用 C++ 编写):
```cpp
long long extractOddDigits(long long s) {
long long t = 0, pow10 = 1;
while (s > 0) {
t += pow10 * (s % 10);
s /= 100;
pow10 *= 10;
}
return t;
}
```
在这个函数中,我们使用了一个 while 循环,每次从 s 中取出最后两位。如果这两位是奇数位上的数,就将它们构成一个新的数加到 t 中。为了方便构造新数,我们使用了一个变量 pow10 来记录当前位的权值,每次循环时乘以 10。最后返回构造出来的新数 t。
注意,如果 s 的位数是偶数,那么最后一次循环时 s 会变成 0,此时循环结束,函数返回的结果就是构造出来的新数 t。如果 s 的位数是奇数,那么最后一次循环时 s 会变成一个只有一位的数,这个数不会被处理,但也不影响结果的正确性。
阅读全文