求一個正整數的各位數字之和
需求:計算輸入的任意一個正整數的各位數字之和。
程式碼:
#include<stdio.h> int sumOfNumber(int num) //分解各位數字,返回其和 { int s=0; do { s += num%10; //累計各位數字之和 num /= 10; //求下一位數值 }while(num); return(s); } void main() { int n; printf("\n"); printf("輸入一個整數:"); scanf("%d",&n); printf("各位數字之和:%d\n",sumOfNumber(n)); printf("\n"); }
整個程式不難,但是我覺得:s += num%10; //累計各位數字之和 num /= 10; //求下一位數值 ,這兩個語句還是挺巧妙的,因為用取餘,求模的方式,累加了各位數字,拿到了數字的下一位。
相關推薦
求一個正整數的各位數字之和
需求:計算輸入的任意一個正整數的各位數字之和。 程式碼: #include<stdio.h> int sumOfNumber(int num) //分解各位數字,返回其和 { int s=0; do { s += num%10; //累計各位數字之和
求一個正整數N的因子個數或該正整數N的所有因子之和
如果要求一個正整數N的因子個數,只需要對其質因子分解,得到各質因子$P_i$的個數分別為$e_1$、$e_2、...、e_k$,於是N的因子個數就是$(e_1+1)*(e_2+1)*...*(e_k+1)$。原因是對每個質因子$P_i$都可以選擇其出現$0$次、$1$次、...、$e_i$,共$e_i+1$種
求一個正整數的階乘
ram -c height white fun mar idt bubuko console 求一個正整數的階乘/* 求一個正整數的階乘。 * 輸入一個正整數,返回它的階乘。 * */ let fact = (function f(num){ "u
求一個正整數的二進位制表示包含多少1
Java中,int型別佔四位元組,即32位,這裡我們假設正整數n是int型,那麼正整數32的二進位制表示為: 0000 0000 0000 0000 0000 0000 0010 0000 法一:位移法 我們對每一位進行判斷,首先判斷最低位,如果是1,那1的
求一個正整數 倒轉後加上1024的結果.比如 12345倒轉後是54321,加上1024,結果是55345.
public static void main(String[] args) { System.out.println("請輸入一個正整數"); Scanner input = new Scanner(System.in); int sum =
[PAT][Python](讀入一個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。)
讀入一個正整數 n,計算其各位數字之和,用漢語拼音寫出和的每一位數字。 輸入格式:每個測試輸入包含 1 個測試用例,即給出自然數 n 的值。這裡保證 n 小於 10^100 。 輸出格式: 在一行內輸出 n 的各位數字之和的每一位,拼音數字間有 1 空格,但一行中最後一個拼音數字後沒有空
一個正整數如果等於組成它的各位數字的階乘之和,該整數稱為階乘和數。 例如,145=1!+4!+5!,則145是一個三位階詳細和數。 請問:50000內共有多少個階乘和數?所有的階乘和數(按字典序,即1打頭的在前,2打頭的次之,..., 空格分隔)
#include <stdio.h>long jc(int x); int main() { int a, b, c, d, e, f, g; long m1, m2, m3, m4, m5, m6, n1, n2, n3, n4, n5, n6; for(a = 1; a <=
求一個整數的各位數字之和,位數
/輸入一個整數,求各位數字之和,及位數,例如234 和為9 位數3/ #include<stdio.h> int main(void) { int integer,count=
給定一個正整數k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構成一個遞增的序列,例如,當k=3時,這個序列是: 1,3,4,9,10,12,13,… (該序列實際上就是:3^0,3^1,3^0+3^1,3^2,3^0+3^2,3^1+3^2,3^0+3^1+3^2,…) 請你求
只有1行,為2個正整數,用一個空格隔開: k N (k、N的含義與上述的問題描述一致,且3≤k≤15,10≤N≤1000)。 計算結果,是一個正整數(在所有的測試資料中,結果均不超過2.1*10^9)。(整數前不要有空格和其他符號)。 #include<stdio.h> int
7-28 求整數的位數及各位數字之和 (15 分)
對於給定的正整數N,求它的位數及其各位數字之和。 輸入格式: 輸入在一行中給出一個不超過109的正整數N。 輸出格式: 在一行中輸出N的位數及其各位數字之和,中間用一個空格隔開。 輸入樣例: 321 輸出樣例: 3 6 思路:對10取餘 獲得數字最末
求階乘,輸入一個正整數 n,輸出n!
factor i++ print 階乘 pri tor n) printf main #include<stdio.h>int factorial (int n); int main(){ int n; scanf("%d",&n); printf("
給定一個正整數,求其位數以及正序逆序輸出
給定一個正整數,求其位數以及正序逆序輸出 #include<stdio.h> int Count(int n)//求正整數的位數 { int tmp=0; do { n=n/10; tmp++; }while(n!=0); return tmp; } void PrintReve
輸入一個正整數陣列,把數組裡所有數字拼接起來排成一個數, 列印能拼接出的所有數字的最小的一個。例如輸入{3,32,321,4},則列印最小的數字是 3213234
public class FandMax { public void makeMax(int[] nums){ boolean flag=true; for (int i = 0; i < nums.length; i++) { for (int j = 0; j <
給定一個正整數k(3≤k≤15),把所有k的方冪及所有有限個互不相等的k的方冪之和構成一個遞增的序列
題目如下 分析 我們可以逆向轉化,把n轉化為二進位制數,然後把他當做K進位制,然後轉化為十進位制的數輸出就是答案結果了 程式碼如下 #include<stdio.h> #include<math.h> #include<stdlib.
一個正整數k(3≤k≤ 15),把所有k的方冪及所有有限個互不相等的k的方幕之和構成個通增的序列
提供一個演算法,其實由於是將有限個互不相等的k,所以我們這裡考察第n項的時候,能取到的最大的k的冪次,不妨設次數是p,那麼與之相關的很顯然應該有2^p個,於是就想到了其實an與k的次數是和n的二進位制有關的. 假設n=∑bk2k,bk=1或0.於是我們有an=∑(bk*k(k-1)). 比如
給定一個正整數n,求出0到n中有幾個數滿足其二進位制表示不包含連續的1
樣例: 輸入:5 輸出:5 0 01 10 100 101滿足,11不滿足。 那麼6144呢? 答案是610,怎麼去計算呢? 思路:查詢從0到n中有多少個數包含連續的1,然後在總數中去掉這些情況,得到
有自己的程式碼--題目:給定一個數組,裡面全是正整數。數字大小表示這一步最多可以向後移動幾個節點。總是從陣列第一個元素開始移動。問如何移動,可以以最少步數移動到最後一個節點。
原文:https://yq.aliyun.com/articles/547799 描述: 題目:給定一個數組,裡面全是正整數。數字大小表示這一步最多可以向後移動幾個節點。總是從陣列第一個元素開始移動。問如何移動,可以以最少步數移動到最後一個節點。 例如:[3,4,2
一個正整數分解為幾個連續的正整數之和
題目: 給定你一個數字 如:15 15可分解為 7+8 4+5+6 1+2+3+4+5 再如: 8 8不可分解為任何連續的正整數之和 所以輸出NONE 此題就是給定一個數字如果這個數字可以分解為
將一個正整數n,拆分成連續的自然數之和,輸出所有可能的情況
http://blog.csdn.net/kennyrose/article/details/6544518 本文連結,感謝分享!! from程式設計之美2.21 問題描述:將一個正整數,拆分成連續的自然數之和,輸出所有可能的情況 例如: 3 = 1+2
列出一個正整數表示成n(n>=2)個連續正整數之和的所有形式
一個正整數有可能可以被表示為n(n>=2)個連續正整數之和,如: 15=1+2+3+4+5 15=4+5+6 15=7+8 請編寫程式,根據輸入的任何一個正整數n,找出符合這種要求的所有連續