思路:用數(shù)組操作,將自然數(shù)先求出他的長度,再將它換成對應位的權積存入數(shù)組中,然后累加得到結果。
站在用戶的角度思考問題,與客戶深入溝通,找到召陵網(wǎng)站設計與召陵網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站建設、成都網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、虛擬空間、企業(yè)郵箱。業(yè)務覆蓋召陵地區(qū)。
#includeiostream
using
namespace
std;
#includemath.h
int
fun(int
n)
{
int
a[10],cnt(1),m(n),k(0);
while(m10)
//while循環(huán)求數(shù)字的長度,看是幾位數(shù)
{
cnt++;
m/=10;
}
for(int
i=0;icnt;i++)
//將每一位和點到循序后的位權乘積存入數(shù)組中,并球累加和
{
int
s=pow(10,i+1);
int
t=pow(10,i);
int
r=pow(10,cnt-i-1);
a[i]=(n%s)/t*r;
k+=a[i];
}
return
k;
}
int
main()
{
coutfun(23456);
//用了多組數(shù)測試均成功?。?!
return
0;
}
函數(shù)是用戶與程序的接口,在定義一個函數(shù)前,首先要清楚以下三個問題。1) 函數(shù)的功能實現(xiàn)及算法選擇。算法選擇會在后續(xù)文章詳細講解,本節(jié)重點關注函數(shù)的功能實現(xiàn)。一般選取能體現(xiàn)函數(shù)功能的函數(shù)名,且見名知意,如求和函數(shù)的函數(shù)名可取為 add,求最大值的函數(shù)名可取為 max,排序函數(shù)可取名為 sort 等。2) 需要用戶傳給該函數(shù)哪些參數(shù)、什么類型,即函數(shù)參數(shù)。3) 函數(shù)執(zhí)行完后返回給調(diào)用者的參數(shù)及類型,即函數(shù)返回值類型。 函教定義格式 函數(shù)定義的一般格式為: 返回類型 函數(shù)名 (類型參數(shù)1,類型參數(shù)2,…) {函數(shù)體 }也可以不含參數(shù),不含參數(shù)時,參數(shù)表中可寫關鍵字 void 或省略,為規(guī)范起見,教程中對沒有參數(shù)的函數(shù),參數(shù)表中統(tǒng)一寫 void。例如: 類型 函數(shù)名 () {函數(shù)體 }等價于: 類型 函數(shù)名 (void) //建議的書寫方式 {函數(shù)體 } 如果該函數(shù)沒有返回類型,則為 void 類型。例如: void add (int x,int y) {printf ("sum=%d\n", x+y); } 除了 void 類型外,在函數(shù)體中,均需要顯式使用 return 語句返回對應的表達式的值。 函教返回值 函數(shù)的值是指調(diào)用函數(shù)結束時,執(zhí)行函數(shù)體所得并返回給主調(diào)函數(shù)的值。 關于函數(shù)返回值說明如下。1) 帶返回值的函數(shù),其值一般使用 return 語句返回給調(diào)用者。其格式為: return 表達式;或者 return (表達式);例如: int add (int a, int b) {return (a + b); //return 后為表達式 } 函數(shù)可以含一個或多個 return 語句,但每次調(diào)用時只能執(zhí)行其中一個 return 語句。例如,求整數(shù)絕對值的函數(shù): int f (int n) //含多個return語句,但每次調(diào)用只執(zhí)行一個 {if (n = 0)return n;elsereturn -n; }
1、編寫函數(shù)func1,實現(xiàn)求兩個數(shù)的最大公約數(shù)。
1:
int
fuc1(int
a,int
b)
{
if(a%b==0)
return
b;
return
fuc(b,a%b);
}
int
t=fuc1(a,b);//t為a,b最大公約數(shù)。
2、編寫函數(shù)func2,實現(xiàn)求兩個自然數(shù)之間的奇數(shù)的和。
2
int
fuc2(int
a,int
b)
{
int
sum=0;
int
i;
for(i=a;i=b;i++)
if(i%2==1)
sum+=i;
return
sum;
}
int
t=fuc2(a,b);//t為a,b間所有奇數(shù)之和。
3、編寫函數(shù)func1,實現(xiàn)求一個自然數(shù)的階乘(要求用遞歸的方法)。
int
fuc1(int
k)
{
if(k==1)
return
1;
return
k*fuc(k-1);
}
int
t=fuc1(a);//t為a的階乘.
4、編寫函數(shù)func2,實現(xiàn)求兩個自然數(shù)之間的偶數(shù)的和。
int
fuc2(int
a,int
b)
{
int
sum=0;
int
i;
for(i=a;i=b;i++)
if(i%2==0)
sum+=i;
return
sum;
}
int
t=fuc2(a,b);//t為a,b間所有偶數(shù)之和。