精华内容
下载资源
问答
  • 18 数字之和

    2020-04-23 17:04:22
    18数字之和 作者:朱星垠时间限制:1S章节:循环 问题描述 : ...对每组测试数据,你的程序需要向标准输出文件(通常为启动该程序的文本终端)依次输出一组对应的答案:输出为它的各位数字之和,所...

    18 数字之和

    作者: 朱星垠 时间限制: 1S章节: 循环

    问题描述 :

    输入一个正整数,求这个正整数的各位数字之和。

    输入说明 :

    你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组测试数据为正整数,每行一个N,N小于20000。

    输出说明 :

    对每组测试数据,你的程序需要向标准输出文件(通常为启动该程序的文本终端)依次输出一组对应的答案:输出为它的各位数字之和,所有数据前后没有多余的空行,两组数据之间也没有多余的空行。

    输入范例 :

    10
    99

    输出范例 :

    1
    18

    #include <stdio.h>
    int main(){
    	int n,a[5];
    	while(scanf("%d",&n) !=EOF){
    	    if(n<0||n>=20000)
    			continue;
    		for(int i=0;i<5;i++){
    		    a[i]=n%10;
    			n/=10;
    		}
    		int temp=0;
    		for(int k=0;k<5;k++){
    		    temp+=a[k];
    		}
    		printf("%d\n",temp);
    	}
        return 0;
    }
    

     

    展开全文
  • 基础18 数字之和

    2020-04-23 19:33:21
    输入一个正整数,求这个正整数的各位数字之和。 输入说明 : 你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组测试数据为正整数,每行一个N,N小于20000。 输出说明 : 对每组测试数据,你的程序...

    18 数字之和

    作者: 朱星垠 时间限制: 1S章节: 循环

    问题描述 :

    输入一个正整数,求这个正整数的各位数字之和。

    输入说明 :

    你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组测试数据为正整数,每行一个N,N小于20000。

    输出说明 :

    对每组测试数据,你的程序需要向标准输出文件(通常为启动该程序的文本终端)依次输出一组对应的答案:输出为它的各位数字之和,所有数据前后没有多余的空行,两组数据之间也没有多余的空行。

    输入范例 :
    10
    99
    输出范例 :
    1
    18

    #include<stdio.h>
    int main(){
        int N,m;
    	while(scanf("%d",&N)!=EOF){
    		m=0;
    		while(N!=0){  
    		   m=m+N%10;
    		   N=N/10;
    		}
    	   printf("%d\n",m);
    	}
    	return 0;
    }
    
    展开全文
  • 各位数字之和:5+6+7=18 差:210-18=192 2 题目分析 2.1 题目梳理 拿到题目,我们要对题目进行分析,找到题目中所蕴含关键信息 本题中关键字:输入、整数n、各位数字、积、和、差 由此,我们要做第一件事就是...

    1 题目重述

    输入一个整数 n,请计算并返回该整数「各位数字之积」与「各位数字之和」的差

    例如:
    输入:567
    返回:192
    解释:

    1. 各位数字之积:5×6×7=210
    2. 各位数字之和:5+6+7=18
    3. 差:210-18=192

    2 题目分析

    2.1 题目梳理

    拿到题目,我们要对题目进行分析,找到题目中所蕴含的关键信息
    本题中的关键字:输入、整数n、各位数字、积、和、差

    由此,我们要做的第一件事就是获取键盘上的输入,且输入必须为一个整数。其次,获取该整数的各位数字。进而求得各位数字之积和各位数字之和。最后,进行做差运算。

    2.2 实现思路

    1.键盘输入一个整数。
    创建Scanner类的对象input,并传入参数System.in 代表系统输入流。使用Scanner类的nestInt()方法获取整型数字n。

    2.获取各位数字
    思路1:
    首先,我们从数学中 被除数➗除数=商+余数 这一点可以知道,当除数为10时,只会对数字进行小数点的前移而不改变每一位数字的值。
    其次,通过整数对10取余,可以得到该整数的个位数字。通过整数除以10取商,可以该整数的大小,对整数进行降位操作(即将n位整数变为n-1位整数,且不改变该整数每一位数字)。反复多次,直到该整数等于0,这样就提取出了该整数的每一位数字。
    这里要用到的语法:循环结构(这里采用的是while循环 )

    思路2:
    我们知道整型是基本数据类型,没有调用方法,也无法直接获取每一位数字。但是字符串类型是引用数据类型,可以调用charAt()方法提取字符串中的每一个元素。基于此,我们思考是否可以将整型转换成字符串类型。幸运的是,String类型为我们提供了这样一个方法,采用String类的valueOf()方法可以将其他数据类型转换成字符串类型。于是我们采用String.valueOf()方法将整型转换成字符串类型,从而采用String类的charAt()方法提取出字符串中的每一个数字字符。
    可是我们也知道字符虽然有对应的是ASCII码,但无法进行计算,也就无法实现我们的需要。于是我们还需要将每一个字符转换为整型,从而进行数字之间的计算。
    这一过程被拆分为两个部分,第一部分是将字符转换成字符串类型,那么首先要将获取的字符转换为字符串,依旧采用String类的valueOf()方法可以将字符类型转换成字符串类型。第二部分是将字符串类型转换成整型,我们知道Integer是int的包装类型,可以调用方法,采用Integer类的parseInt()方法,可以将字符串类型转换为整型,从而实现字符型到整型的转换。

    3.进行做差运算
    对我们得到的数字分别进行累加和累积,并将结果分别保存在sum和mul中。

    3 代码实现

    3.1 方式一:

    通过对10取余的方式获取每一位数字

    		// 1 获取一个整数n
    		Scanner input = new Scanner(System.in);// System.in 代表系统输入流
    		System.out.println("请输入一个整数:");
    		int n = input.nextInt();//nextInt()方法限制输入必须为整型
    		System.out.println("输入数字为:" + n);
    
    		// 2 获取该整数的每一位数字
    		// 2.1 默认和为0,积为1(积为0的话就没有办法累积了哦,毕竟0乘任何数都为0)
    		int sum = 0, mul = 1;
    		// 2.2 判断数字是否为0
    		while (n != 0) {
    			// 2.3 获取整数的各位数字
    			int num = n % 10;
    			// 2.4 累积
    			mul *= num;
    			// 2.5 累加
    			sum += num;
    			// 2.6 对整数进行降位(即改变当前数字的大小)
    			n /= 10;
    		}
    		// 3 进行做差计算
    		int result = mul - sum;
    
    		// 4 输出
    		System.out.println("运算结果为:" + result);
    

    代码结果:

    请输入一个整数:
    567
    输入数字为:567
    运算结果为:192
    

    3.2 方式二:

    通过类型转换获取每一位数字

    		// 1 获取一个整数n
    		Scanner input = new Scanner(System.in);// System.in 代表系统输入流
    		System.out.println("请输入一个整数:");
    		int n = input.nextInt();
    		System.out.println("输入数字为:" + n);
    
    		// 2 获取该整数的每一位数字
    		// 2.1 默认和为0,积为1
    		int sum = 0, mul = 1;
    		// 2.2 将数字转化为字符串,使用String类的.charAt()方法提取字符串中的每个元素
    		// 整型=>字符串
    		String strNumber = String.valueOf(n);
    		for (int i = 0; i < strNumber.length(); i++) {
    			char c = strNumber.charAt(i);
    			// 2.3 将字符转化为字符串,再将字符串转化为整型,进行运算
    			// 字符=>字符串=>整型
    			// 分步实现
    //			String str = String.valueOf(c);
    //			int num = Integer.parseInt(str);
    			// 组合实现
    			int num = Integer.parseInt(String.valueOf(c));
    			// 2.4 累积
    			mul *= num;
    			// 2.5 累加
    			sum += num;
    		}
    		// 3 进行做差计算
    		int result = mul - sum;
    		// 4 输出
    		System.out.println("运算结果为:" + result);
    

    代码结果:

    请输入一个整数:
    567
    输入数字为:567
    运算结果为:192
    

    3.3 方式三:

    如果你的程序中需要多次计算,可以将实现的代码写作方法,在主函数中调用即可。

    	public static void main(String[] args) {
    		// 1.获取输入数字
    		Scanner input = new Scanner(System.in);
    		System.out.println("请输入数字:");
    		int n = input.nextInt();
    		System.out.println("输入数字为:"+n);
    		// 2.调用方法并输出
    		// 方法1:
    		System.out.println("计算结果1:" + diff1(n));
    		// 方法2:
    		System.out.println("计算结果2:" + diff2(n));
    	}
    
    	// 方法1:
    	public static int diff1(int n) {
    		// 1.默认和等于0,积等于1
    		int sum = 0, result = 1;
    		// 2.判断数字是否为0
    		while (n != 0) {
    			// 3.获取当前数字的个位
    			int num = n % 10;
    			// 4.进行计算
    			// 4.1累加
    			sum += num;
    			// 4.2累乘
    			result *= num;
    			// 5.改变当前数字的大小
    			n = n / 10;
    		}
    		return result - sum;
    	}
    
    	// 方法2:
    	public static int diff2(int n) {
    		// 1.默认和等于0,积等于1
    		int sum = 0, result = 1;
    		// 2.将整型转化为字符串类型
    		String strNumber = String.valueOf(n);
    		// 3.获取字符串的每个字符
    		for (int i = 0; i < strNumber.length(); i++) {
    			char c = strNumber.charAt(i);
    			// 4.类型转换
    			// 字符=>字符串=>整型
    			String s = String.valueOf(c);
    			int num = Integer.parseInt(s);
    			// 5.进行计算
    			sum += num;
    			result *= num;
    		}
    		return result - sum;
    	}
    

    代码结果:

    请输入数字:
    567
    输入数字为:567
    计算结果1:192
    计算结果2:192
    
    展开全文
  • 【问题描述】输入一个整数n,求它位数以及各位数字之和。例如,123位数是3,各位数字之和是6。 【输入输出样例1】 Input n:1280 count=4,sum=11 【输入输出样例2】 Input n:-99 count=2,sum=18 【样例说明】 ...

    【问题描述】输入一个整数n,求它的位数以及各位数字之和。例如,123的位数是3,各位数字之和是6。
    【输入输出样例1】
    Input n:1280
    count=4,sum=11
    【输入输出样例2】
    Input n:-99
    count=2,sum=18
    【样例说明】
    输入提示符后冒号为英文字符,后面无一个空格。
    输出语句的“=”两边无空格。

    #include<stdio.h>
    int main()
    {
    	int count=0, n,t,sum=0;
    	printf("Input n:");
    	scanf_s("%d",&n);
    	while (n != 0)
    	{
    		t = n % 10;
    		n = n / 10;
    		count++;
    		sum += t;
    	}
    	printf("count=%d,sum=%d",count,sum);
    	return 0;
    }
    
    
    展开全文
  • 东北大学C语言期末考试题库-从键盘输入一个任意3~5位正整数,判断各位数字之和是否为18,是输出yes,否则输出no。 题目 从键盘输入一个任意3~5位正整数,判断各位数字之和是否为18,是输出yes,否则输出no。   ...
  • 给出aa,bb,求出[a,b][a,b]中各位数字之和能整除原数个数。 数据范围:a≤b≤1018a\leq b\leq 10^{18} 分析: 暴力枚举所有可能数字和即可。 需要判断余数等于0并且所有数字和等于设定sum。#include ...
  • 因而,它的各位数字之和就是9的倍数。 abc=18(a+b+c) 而a+b+c只有可能是9,18,27 9×18=162 yes 18×18=324 no 27×18=486 no package liulixin; public class threeDigits { /** * @param args */ ...
  • T156526 各数字之和 题目描述 给出一个正整数 n,请你计算从 1 到 n 的所有正整数中,有多少个数字的各位数和是 9? 输入格式 输入一个不超过 10000001000000的正整数 n。 输出格式 输出一个整数表示答案 输入输出...
  • 微信公众号同名 整除问题是小学奥数经典题型。 349956476571能被1~20里哪些数整除,可以直接排除2、4、6、8、10、12、14、15、...整除性规律 2:个位是偶数 3:各位数字之和是3倍数 4:末两位上数能被4整...
  • Python编程之欧拉计划(16~18)欧拉计划16、求100个大数的和的前10位数字17、...215=32768,32768的各位数字之和为 3 + 2 + 7 + 6 + 8 = 26。计算21000的各位数字之和。 分析:还是一行代码解决Orz print(sum(list(...
  • //计算和返回n转换成base进制后的各位数字之和 int Cale(int base,int n){ int sum=0; for(;n>0;) //n>0处理 sum+=n%base;//加各进制的各位数之和; n/=base; //用来转化进制 return sum; } //遍历...
  • 微信公众号同名 整除问题是小学奥数经典题型。 349956476571能被1~20里哪些数整除,可以直接排除2、4、6、8、10、12、14、15、...整除性规律 2:个位是偶数 3:各位数字之和是3倍数 4:末两位上数能被4整...
  • 题目大意:请找到第$k$大数,满足各位数字之和等于各位数字之积。其中$k≤10^{18}$。 首先我们要确定这个第$k$大数有多大 我们用$f[i][j][he][ji]$表示我们要搜索一个$i$位数字,还有$j$位没有确定,且...
  • 接上题,整除问题是小学奥数经典题型。349956476571能被1~20里哪些数整除,可以直接排除2...整除性规律2:个位是偶数3:各位数字之和是3倍数4:末两位上数能被4整除5:个位是0或者56:个位是偶数,且各位...
  • 求(1-10^18)内整数,满足各位数字之和为7整数倍所有数和,例如:25,86,106,1115各位相加都是7整数倍。要求:1-2秒内完成
  • 1、假设有一个数组全部为正数,arr[7]={6,9,12,3,14,4,12}。...4、现有数组arr[1000]限制区间长度为10~18,如何依次分割出连续区间,使在当前数组中区间平均数最大。期待大神表现~~算法就是伤脑啊~~
  • 如果谁比划出数字正好等于两人喊出的数字之和,谁就赢了,输家罚一杯酒。两人同赢或两人同输则继续下一轮,直到唯一赢家出现。 下面给出甲、乙两人划拳记录,请你统计他们最后分别喝了多少杯酒。 输入...
  • 要求:如果一个整数各位数字之和可以被9整除,那么该数就能被9整除。编写一个脚本,提示用户输入一 个整数,然后输出该整数,并告知能够被9整数。 这里只实现了四位数判断: 1 2 3 4 5 6 7 8 9 10 11 12 13 14...
  • 给出a,b,求出[a,b]中各位数字之和能整除原数个数。1<=a<=b<=1e18. 注意到各位数字之和最大是153.考虑枚举这个东西。那么需要统计是[0,a-1]和[0,b]内各位数字之和为x且能整除x数字个数。 那么...
  • 题意:给出a,b,求出[a,b]中各位数字之和能整除原数个数。 思路:给出a,b,求出[a,b]中各位数字之和能整除原数个数。1&lt;=a&lt;=b&lt;=1e18. 注意到各位数字之和最大是153.考虑枚举这个...
  • Smith数

    2015-01-11 22:51:15
    /** 对于一个正整数n,如果它的各位之和等于它的... **3+1+2+5+7=18,它的所有质因数的各位数字之和为3+3+2+3+1+5+1=18,因此, **31257是一个Smith数。编写一个程序判断输入的正整数是不是Smith数。 */ #include #
  • 例如,31257=3*3*23*151,31257 的各位数字之和为3+1+2+5+7=18,它的所有质因数的各位数字之和为3+3+2+3+1+5+1=18,因此,31257是一个Smith数。编写一个程序判断输入的正整数是不是Smith数。输入说明:有多组数据,...
  • 华为机试—Smith数

    千次阅读 2015-01-11 01:28:54
    例如,31257=3*3*23*151,31257 的各位数字之和为3+1+2+5+7=18,它的所有质因数的各位数字之和为3+3+2+3+1+5+1=18,因此,31257是一个Smith数。编写一个程序判断输入的正整数是不是Smith数。 输入说明:有多组...
  • smith 数

    千次阅读 2015-04-05 21:16:18
    例如,31257=3*3*23*151,31257 的各位数字之和为3+1+2+5+7=18,它的所有质因数的各位数字之和为3+3+2+3+1+5+1=18,因此,31257是一个Smith数。编写一个程序判断输入的正整数是不是Smith数。 输入说明:有多组...
  • 题目大意: ...各位数字之和最大为9*18=162,因此我们可以枚举数字之和。 定义状态为dp[pos][sum1][sum2]表示枚举到pos位,前面数位和sum1,以及前面数位组成数对mod取余结果。 最后...
  • 从任一个3倍数数开始进行如下变换:把各位数字的立方相加,其就作为变换后数字。反复进行上述变换,经过有限次计算以后,结果必然等于153。 例如:24是3倍数,按照上述规则,进行变换过程是: 24 -&...
  • 题目描述 给出两个数a,ba,b,求...dp[i][j][k]:i表示数位,j表示到当前数位的各位数字之和,k表示原数。 由于原数很大,所以在计算原数的时候就对数字之和取模,那就要提前设置一个数字之和作为模数,所以枚举所有可能
  • 2、有一个三位数,个位数字比百位数字大,而百位数字又比十位数字大,并且各位数字之和等于各位数字相乘之积,求此三位数。3、蜘蛛有8条腿,蜻蜓有6条腿和2对翅,蝉有6条腿和1对翅。三种虫子共18共,共有118条腿和20...

空空如也

空空如也

1 2 3 4 5
收藏数 98
精华内容 39
关键字:

和的各位数字之和18