各位數字求和:
int m_sum(int x)
{int t = 0;
int n = 0;
while(x > 0)
{ n = x % 10;
x = x / 10;
t += n; }
return t;}
int main()
{ int x = 123 ;
printf("%d\n",m_sum(x));
return 0;}
100里有幾個9:
int m_fi(int x)
{ int i;
int t = 0;
for(i = 0; i < x ;i++)
{ if(i % 10 == 9)
{ t++; }
if(i / 10 == 9)
{ t++; }
}
return t;
}
int main()
{ int x = 100;
printf("%d",m_fi(x));
}
水仙花數:(153=1*1*1+5*5*5+3*3*3)
#include<stdio.h>
int m_pow(int x)
{ x = x * x * x;
return x;
}
int m_narcissistic(int y)
{ int b = y, t = 0, n = 0;
while(y > 0)
{ n = y % 10;
y = y / 10;
t +=m_pow(n);
}
if(t == b)
{ printf("%d\n", b);
return 1;
}else
{ return 0; }
}
int main()
{ int i; for(i = 100; i < 1000; i++)
{ if (m_narcissistic(i) == 1)
{ printf("%d\n", i); }
}
return 0;
uj5u.com熱心網友回復:
樓主代碼沒問題,簡化下,供參考:#include<stdio.h>
int m_sum(int x)
{
int t = 0;
while(x){
t += x % 10;
x /= 10;
}
return t;
}
int m_cnt_9(int x)
{
int cnt=0;
while (x){
if((x%10) == 9) cnt++;
x /= 10;
}
return cnt;
}
int m_fi(int x)//有幾個9:
{
int i;
int t = 0;
for(i = 1; i < x ;i++){
t += m_cnt_9(i);
}
return t;
}
int m_pow(int x)
{
x = x * x * x;
return x;
}
int m_narcissistic(int y)//水仙花數:(153=1*1*1+5*5*5+3*3*3)
{
int b = y, t = 0;
while(y){
t += m_pow(y % 10);
y /= 10;
}
if(t == b){
return 1;
}else{
return 0;
}
}
int main()
{
int i,x=1000,y=123;
printf("%d\n",m_sum(y));//位數和
printf("%d\n",m_fi(x)); //1-1000間9的個數
for(i = 100; i < 1000; i++){ //水仙花數
if (m_narcissistic(i) == 1){
printf("%d ", i);
}
}
printf("\n");
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/269056.html
標籤:C語言
上一篇:正負數去重隨機抽取
下一篇:這段代碼的含義
