整数的每一位上数字的确定

//首先得定义一个函数能够返回特定位上的数字
int bitValue(int num,int bit)
{
    int tmp=1;
        int i;
    for(i=1;i<bit;i++)
        tmp=tmp*10;
    
    //如果返回第一位上的数
    if(bit==1)
        return num%10;
    
    //否则使用简单的递归方法返回任意位上数字
    else {
        int res=num/tmp;
        return bitValue(res,1);
    }
}

//寻找一个数的位数
int findBit(int x)
{
  int bit=10;
  int i=1;
  while(x/bit!=0) {
    bit=bit*10;
    i++;
  }
  return i;
}
时间: 2024-11-23 01:25:38

整数的每一位上数字的确定的相关文章

Java 输入一个整数,计算它各位上数字的和。(注意:是任意位的整数)

import java.util.*; /* * 输入一个整数,计算它各位上数字的和. * (注意:是任意位的整数) */ public class Sum02 { public static void main(String[] args) { System.out.print("请输入任意一个整数:"); Scanner s = new Scanner(System.in); int sum = 0; int t = s.nextInt(); while(t!=0){ sum =

函数FUN功能,计算n的5次方的值(规定N的值大于2且小于8),通过形参指针传回主函数,并计算该值的个位、十位、百位上数字之和作为函数值返回,例如7的5次方是16807后三位和为15

#include <stdio.h>#include <math.h>int fun(int n,int *value){ int d,s,i;d=1;s=0; for(i=1;i<=5;i++) d=d*n; *value=d; for(i=1;i<=3;i++) { s=s+d%10;d=d/10; } return s;} void main(){ int n,sum,v; do { printf("\n Enter n(2<n<8):&qu

JAVASE 循环 之 计算各位上数字的和

问题:输入一个整数,计算它各位上数字的和 Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int sum = 0; while(a!=0){ sum = sum+a%10; a=(int)a/10; } System.out.println(sum);

给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。

1 package digitAddTogither; 2 3 /** 4 * Created by ZKY on 2017-08-15 01:00. 5 * 给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数. 6 * 样例 7 * 给出 num = 38. 8 * 相加的过程如下:3 + 8 = 11, 9 * 1 + 1 = 2. 10 * 因为 2 只剩下一个数字,所以返回 2. 11 */ 12 public class DoMain 13 { 14 /**

怎样计算一个整数的位数&amp;并把每一位上的数字保存下来

用循环来解决~~ M每次除以10, 再用一个变量count来计数,每循环一次 加1,直到这个数除去10后的数小于10 ,count再加1就可以了 实例:整数M=4325, 第一次:4325/10=432,M结果不为0,cout=1; 第一次:432/10=43,M结果不为0,cout=2; 第三次:43/10=4,M结果不为0,count=3; 第四次:M为4,结果不为0,count=4;但是M/10为0,循环结束了 至于保存一个整数的每一位数,我们可以用最常规的方法,用取模(%)和相除(/)连

数组-07. 求一批整数中出现最多的个位数字

数组-07. 求一批整数中出现最多的个位数字(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 徐镜春(浙江大学) 给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字.例如给定3个整数1234.2345.3456,其中出现最多次数的数字是3和4,均出现了3次. 输入格式: 输入在第1行中给出正整数N(<=1000),在第2行中给出N个不超过整型范围的正整数,数字间以空格分隔. 输出格式: 在一行中按格式“M:

得到一个数字中每一位的数字

学习编程也有一段时间了,随着学习的不断深入,我越来越体会到了算法的重要性,最近遇到了一些非常有意思的算法,比如打印水仙花数.将数字逆置,在这两个算法中会用到一个数字钟每一位的值 如:判断数字123是否是水仙花数需要得到每一位的数字 通常计算每一位的数字的算法是: 个位:a = 123 % 10 = 3 十位:b  = 123 %100 / 10 = 2 百位::c = 123 % 100 = 2 随着位数的越来越大,这种方法满足不了程序的需求 比如计算:123445677777777777777

OJ题:输入一个多位的数字,求各数位相加。

题目内容: 输入一个多位的数字,1求各数位相加. 例如输入12345,则计算1+2+3+4+5=15 输入格式: 一个整数 输出格式: 一个整数 输入样例: 1234567890 输出样例: 45 时间限制:500ms内存限制:32000kb 实现程序: #include <stdio.h> #include <stdlib.h> #include <string.h> int cnt_count(int value) { int count = 0 , cnt = 0

25.(需要好好研究研究)输入任意的正整数,将其各位分离出来;求它是几位数,求各位上数字的和,求其逆值

#include<iostream> using namespace std; int main() { int m,n,i,j=1,k=0,a[20],x,y; cout<<"请输入一个整数:"; cin>>m;//输入的数为m y=m;//先将m赋值给y,将原始输入的数保护起来 for(i=1;;i++)//中间的判断条件可以不要,就变成了死循环 { j*=10; n=m/j; a[i]=n; k++;//用于记录有几位数 if(n<1)/