项目说明】输入整数n和k,输出n中从右端开始的第k个数字的值(k从1开始)。 将求n中右端第k个数字定义成函数digit(n,k),如果k超过了n的位数,则函数返回-1;否则返回n中第k个数字。 例如:digit(345876,4)=5,digit(345,4)=-1。
时间: 2024-02-06 19:09:20 浏览: 33
下面是Python的实现代码:
```python
def digit(n, k):
if k > len(str(n)):
return -1
else:
return int(str(n)[-k])
```
其中,str(n)将整数n转换为字符串,len(str(n))返回n的位数,str(n)[-k]表示从右往左数第k个字符,即n中从右端开始的第k个数字的字符。最后用int()函数将这个字符转换成整数即可。如果k超过了n的位数,则返回-1。
相关问题
设计一个JAVA程序,完成:输入正整数n和正整数k,输出n从右边开始第k个数字的值。
好的,这是一个技术问题,我可以回答。
以下是Java程序代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
String str = Integer.toString(n);
char[] arr = str.toCharArray();
System.out.println(arr[arr.length - k]);
}
}
```
输入n和k后,将n转化为字符串,并将字符串转化为字符数组。然后根据题目要求,输出从右边开始第k个数字的值。
项目1 输出整数中指定位数的数值 【项目说明】输入整数n和k,输出n中从右端开始的第k个数字的值(k从1开始)。 将求n中右端第k个数字定义成函数digit(n,k),如果k超过了n的位数,则函数返回-1;否则返回n中第k个数字。 例如:digit(345876,4)=5,digit(345,4)=-1。
以下是实现digit函数的C代码:
```c
#include <stdio.h>
int digit(int n, int k) {
int i, num = n, count = 0;
// 计算n的位数
while (num > 0) {
count++;
num /= 10;
}
// 如果k超过了n的位数,则返回-1
if (k > count) {
return -1;
}
// 从右端开始取第k个数字
for (i = 1; i < k; i++) {
n /= 10;
}
return n % 10;
}
int main() {
int n, k, result;
printf("请输入整数n和k:");
scanf("%d %d", &n, &k);
result = digit(n, k);
if (result == -1) {
printf("k超过了n的位数!\n");
} else {
printf("n中右端第%d个数字是:%d\n", k, result);
}
return 0;
}
```
该程序接受用户输入一个整数n和一个位数k,然后调用digit函数计算n中从右端开始的第k个数字的值,并输出结果。如果k超过了n的位数,则输出错误信息。