PTA 7-7 求整数的位数及各位数字之和 (15分)

#include<stdio.h>
int main()
{
    unsigned long int a;
    int b, c,d;
    int sum = 0;
    int count = 1;
    scanf("%ld", &a);
    c = a;
    while (c=c/10)
    {
        count++;
    }
    b = count;
    while(count--)
    {
        d = a % 10;
        sum += d;
        a = a / 10;
    }
    printf("%d %d", b, sum);
}

原文地址:https://blog.51cto.com/14737345/2479858

时间: 2024-11-09 02:10:03

PTA 7-7 求整数的位数及各位数字之和 (15分)的相关文章

浙大版《C语言程序设计(第3版)》题目集 习题2-6 求阶乘序列前N项和 (15 分)

习题2-6 求阶乘序列前N项和 (15 分) 本题要求编写程序,计算序列 1!+2!+3!+? 的前N项之和. 输入格式: 输入在一行中给出一个不超过12的正整数N. 输出格式: 在一行中输出整数结果. 输入样例: 5 输出样例: 153 思路:利用函数阶乘累加. 代码如下: #include <stdio.h> long factorial(long n); int main() { long n; scanf("%ld",&n); printf("%l

多种方法求java求整数的位数

方法一 private static int getNumLenght(long num){ num = num>0?num:-num; return String.valueOf(num).length(); } 方法二 private static int getNumLenght(long num){ num = num>0?num:-num; if (num==0) { return 1; } return (int) Math.log10(num)+1; } 方法三 private

7-16 求符合给定条件的整数集(15 分)

给定不超过6的正整数A,考虑从A开始的连续4个数字.请输出所有由它们组成的无重复数字的3位数. 输入格式: 输入在一行中给出A. 输出格式: 输出满足条件的的3位数,要求从小到大,每行6个整数.整数间以空格分隔,但行末不能有多余空格. 输入样例: 2 输出样例: 234 235 243 245 253 254 324 325 342 345 352 354 423 425 432 435 452 453 523 524 532 534 542 543 解题思路: 这道题提供两个思路: 利用 Co

7-49 求前n项的阶乘之和 (15 分)

从键盘输入一个整数n,求前n项的阶乘之和,1+2!+3!+...+n!的和 输入格式: 输入一个大于1的整数.例如:输入20. 输出格式: 输出一个整数.例如:2561327494111820313. 输入样例: 在这里给出一组输入.例如: 20 输出样例: 在这里给出相应的输出.例如: 2561327494111820313 def f(n): ans = 1 for i in range(1,n+1): ans *= i return ans n = int(input()) sum = 0

习题7-4 求矩阵各行元素之和 (15分)

本题要求编写程序,求一个给定的m×n矩阵各行元素之和. 输入格式: 输入第一行给出两个正整数m和n(1).随后m行,每行给出n个整数,其间 以空格分隔. 输出格式: 每行输出对应矩阵行元素之和. 输入样例: 3 2 6 3 1 -8 3 12 输出样例: 9 -7 15 #include<stdio.h> int main() { int i,j; int n,m; int sum=0; scanf("%d%d",&m,&n);//m表示行,n表示一行n个整

练习2-15 求简单交错序列前N项和(15 分)

本题要求编写程序,计算序列 1 - 1/4 + 1/7 - 1/10 + ... 的前N项之和. 输入格式: 输入在一行中给出一个正整数N. 输出格式: 在一行中按照"sum = S"的格式输出部分和的值S,精确到小数点后三位.题目保证计算结果不超过双精度范围. 输入样例: 10 输出样例: sum = 0.819 #include<stdio.h> int main() { double sum=0; double t; int flag=1; int n; int d=

练习4-3 求给定精度的简单交错序列部分和(15 分)

本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + ... 直到最后一项的绝对值不大于给定精度eps. 输入格式: 输入在一行中给出一个正实数eps. 输出格式: 在一行中按照"sum = S"的格式输出部分和的值S,精确到小数点后六位.题目保证计算结果不超过双精度范围. 输入样例1: 4E-2 输出样例1: sum = 0.854457 输入样例2: 0.02 输出样例2: sum = 0.826310 #include<stdio.h> #i

求一个整数的位数

C++ 吧里看到有人求助, 说是想写点代码求一个整数的位数, 以下是我的解决方法: int32_t RecursionIter (const int64_t& num, const int32_t& result) { if (num < 0) { return RecursionIter (-num, result); } else if (num / 10 == 0) { return result; } else { return RecursionIter (num / 10

求一个int型整数的两种递减数之和(java)--2015华为机试题

题目描述: 给出一个整数(负数使用其绝对值),输出这个整数中的两种递减数(1.最大递减数:2.递减数中各位数之和最大的数)之和. 递减数:一个数字的递减数是指相邻的数位从大到小排列的数字,不包含相邻的数位大小相同的情况. 最大递减数:所输入整数的所有递减数中值最大的一个. 如: 75345323,递减数有:75,753,53,53,532,32.那么最大的递减数为753. 各位数字之和最大的递减数: 如75345323中的各递减数:75各位数之和=12(7+5=12),753各位数之和=15(7