java - 第一位和最后一位数字之和
问题描述
我写了一个代码,我想在其中添加第一个和最后一个数字。我的代码涵盖 1 位和 2 位和 3 位的场景,但不包括 4 位。另外,我认为我的代码不是很简单和高效,我想使用一个while循环来覆盖所有场景。有人可以帮忙吗?
public static void main(String[] args) {
System.out.println(sumFirstAndLastDigit(10));
}
public static int sumFirstAndLastDigit(int number) {
int mod = 0;
int firstdivide = 0;
int seconddivide = 0;
int sum = 0;
if (number < 0) {
return -1;
} else if (number > 0 && number < 10) {
return number + number;
} else if (number >= 10 && number < 100) {
mod = number % 10;
firstdivide = number / 10;
sum = mod + firstdivide;
return sum;
}
while (number > 0) {
mod = number % 10;
firstdivide = number / 10;
seconddivide = firstdivide / 10;
sum = mod + seconddivide;
break;
}
return sum;
}
解决方案
通过一点数学,您可以轻松提取数字的第一位和最后一位。最后一位(最右边的)数字很简单,只需取模,第一个(最左边的)数字可以通过计算以 10 为底的对数来获得。
public static int sumFirstAndLastDigit (int number) {
if (number < 0) {
return -1;
}
int lastDigit = number % 10;
int digits = (int)Math.log10(number); // number of digits - 1
int firstDigit = (int)(number / Math.pow(10, digits));
return lastDigit + firstDigit;
}
推荐阅读
- filter - 在组件内部运行的自定义过滤器和/或插件
- python - Python:将带有 Unicode 的字符串转换为 HTML 数字代码
- c# - 为什么 FindNextFile 在我的 C# 代码中不起作用?
- java - ANTLR4 从函数返回值
- php - 使用 PDO、MVC 和 PHP 将变量绑定到数据库查询的问题
- python - 如何使用 DataFrame 编辑 Excel 文件并将其另存为 Excel 文件?
- woocommerce - Wocomerce 导入带有自定义分隔符的 csv 文件产品
- c++ - Windows:如何检测键盘布局 3 字符缩写的本地化语言名称,如任务栏上的输入指示器中所示
- javascript - 在本地系统的子窗口上访问 DOM
- javascript - 我做了每个前缀命令和帮助命令