Java求出任意数字的各个位数之和方式

目录
  • 求出任意数字的各个位数之和
  • 求一个整数各位数之和
    • 思路分析
    • 代码

求出任意数字的各个位数之和

import java.util.Scanner;
/**
 * 用JAVA求任意一个数的各个位数之和
 * @author Administrator
 *
 */
public class test {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("请输入一个数字:");
		int num = sc.nextInt();
		int sum=0;
		while(num!=0){
			sum = sum + num%10;
			num = num/10;
		}
		System.out.println("所给数字的各个位数之和为:"+sum);
	}
}

求一个整数各位数之和

功能:求一个整数各位数之和

输入:一个整数,如999、888、100、等

输出:该整数各位数之和,如999各位之和为27

思路分析

主要思路:也就是求商和余数的算法,不断整除10求余数。

步骤:

假设输入数字为a=999;

设两个数:m和n,n为该数的个位数,m为该数整除10的商。

首先求个位数的数字:n = a%10=9;

然后把这个数现在变成a=a-n;没有个位数了。

降位:m = a/10;

最后求的各位数之和为sum=0,初始化为0;

sum=sum+n;

然后就是不断用m%10;求出当前最后一位数,并更新m,使得m=m/10;

代码

/**
 * 求一个整数各位数的和
 * 输入:0-1000之间的一个整数
 * 输出:该整数各位数相加
 */
package lqp;
import java.util.Scanner;

/**
 * <p>Title:</p>
 * <p>Description:</p>
 * @author Li Qingpei
 * @data 2018年12月7日
 */
public class code_2_6 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		System.out.println("Enter a number between 0 and 1000: ");
		int a = input.nextInt();
		int b = code_2_6.numberSum(a);
		System.out.print("The sum of the digist is "+b);
	}
	public static int numberSum(int a){
		int n = a%10;
		a = a-n;
		int m = a/10;
		int sum=0;
		sum = sum+n;

		while(m!=0)
		{
			sum = sum+m%10;
			m=m/10;
		}
		return sum;
	}
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java随机生成10位数的字符串ID

    简述 项目中,有种业务需要当前表中存个另外一个表中的主键ID字段,如果用数据库自增的话,容易出现重复 比如A表主键ID自增1.2.3.....,B表主键ID自增1.2.3.....,A表中有个字段是B_Id,会出现a_id=3.b_id=3的情况,傻傻分不清楚这边主要分享的是一个随机生成10位永不重复的随机字符串,不啰嗦了,下面上代码 随机数生成工具类 /** * MathUtils.java * com.prereadweb.utils * Copyright (c) 2019, 北京链天下科

  • Java实现n位数字的全排列

    n位数字的全排列共有n!种. 本排列只对字符型数字排列进行输出,输出的是字符型数字.这种问题一般都需要用递归的方法. java代码如下: public class Test { static int k=0; public static void main(String[] args) { int a[]={1,2,3,4,5}; permutations(a,0,4); } public static void permutations(int[]a,int m,int n){ if(m==n

  • Java根据正整数的位数并逆序打印出各位数字

    题目:给一个不多于5位的正整数,要求:一.求它是几位数,二.逆序打印出各位数字. 程序设计: import java.util.Scanner; public class Ex24 { public static void main(String[] args) { Ex24 tn = new Ex24(); Scanner s = new Scanner(System.in); long a = s.nextLong(); if(a < 0 || a > 100000) { System.o

  • Java判断数字位数的方法总结

    普通方法: import java.util.Scanner; public class Digits { public static void main(String[] args){ Scanner input=new Scanner(System.in);//声明扫描仪变量 System.out.println("请输入0-999999999整数");//系统提示输入 try{ //监听异常 while(true){ int num=input.nextInt(); int co

  • Java求出任意数字的各个位数之和方式

    目录 求出任意数字的各个位数之和 求一个整数各位数之和 思路分析 代码 求出任意数字的各个位数之和 import java.util.Scanner; /** * 用JAVA求任意一个数的各个位数之和 * @author Administrator * */ public class test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("请输入一

  • Java读取一行空格隔开的数字字符串并求出这些数字的和方法

    如下所示: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while(in.hasNextLine())//判断是否有输入一行数据 { String tmp = in.nextLine();//将一行数据读出 if(tmp.equals("q"))//输入q退出程序 break; Str

  • java求整数的位数方式

    目录 求整数的位数 其一 其二 其三 java整数位数判断 求整数的位数 一般有几种方法,其一是转成字符串求,缺点是字符串耗时间长:另一种是用Math.log10();用log函数:还有一种用循环除以10的方式求出:最后一种,直接判断<10,<100,<1000,<10000……或许效率挺高吧,因为不需要计算. 其一 private static int getNumLenght(long num){         num = num>0?num:-num;       

  • python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案

    第一种是进行多项式拟合,数学上可以证明,任意函数都可以表示为多项式形式.具体示例如下. ###拟合年龄 import numpy as np import matplotlib.pyplot as plt #定义x.y散点坐标 x = [10,20,30,40,50,60,70,80] x = np.array(x) print('x is :\n',x) num = [174,236,305,334,349,351,342,323] y = np.array(num) print('y is

  • Java求10到100000之间的水仙花数算法示例

    本文实例讲述了Java求10到100000之间的水仙花数算法.分享给大家供大家参考,具体如下: 水仙花数: 概念:水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153) 算法思路分析:这个算法我们分两个步骤来进行:第一:我们做一个求一个数的位数的函数:第二:我们通过调用此函数来进行10到100000之间素数的计算! 下面给出具体的代码(仅供参考): package javastudy; public class

  • Java实现分解任意输入数的质因数算法示例

    本文实例讲述了Java实现分解任意输入数的质因数算法.分享给大家供大家参考,具体如下: 分解任意输入数的质因数: 质因数概念:任何一个合数都可以写成几个质数相乘的形式.其中每个质数都是这个合数的因数,叫做这个合数的分解质因数.分解质因数只针对合数. 例如:12 = 2x2x3  18 = 2 x 3 x 3等等 下面来讲解一下这个算法的思路:第一:我们首先写一个求素数的函数:第二;我们做一个分解质因数的函数,然后在其中引入素数函数来判断是否为素数: 下面给出代码(仅供参考): package j

  • Java求s=a+aa+aaa+aaaa+aa...a 5个数相加的值

    题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. 程序分析:关键是计算出每一项的值. 程序设计: import java.io.*; public class Sumloop { public static void main(String[] args) throws IOException { int s=0; String output=""; BufferedRe

  • Java求最小生成树的两种算法详解

    目录 1 最小生成树的概述 2 普里姆算法(Prim) 2.1 原理 2.2 案例分析 3 克鲁斯卡尔算法(Kruskal) 3.1 原理 3.2 案例分析 4 邻接矩阵加权图实现 5 邻接表加权图实现 6 总结 介绍了图的最小生成树的概念,然后介绍了求最小生成树的两种算法:Prim算法和Kruskal算法的原理,最后提供了基于邻接矩阵和邻接链表的图对两种算法的Java实现. 阅读本文需要一定的图的基础,如果对于图不是太明白的可以看看这篇文章:Java数据结构之图的原理与实现. 1 最小生成树的

  • Java求字符串中出现次数最多的字符串以及出现次数

    金山公司面试题:一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出. 此题的解题思路如下: 引入TreeSet:通过集合快速找到所有出现过的字符串 引入ArrayList:为了快速排序,再通过StringBuffer生成排序后的字符串 通过String的indexOf方法和lastIndexOf方法来计算每个字符串出现的次数最大值 使用HashMap

随机推荐