『壹』 c語言函數題目,一個三位數,其各位數字立方和等於該本身
#include<stdio.h>
#include<math.h>
boolIsSxh(intn)
{
intg=0;
ints=0;
intb=0;
b=n/100;
s=(n-b*100)/10;
g=n-b*100-s*10;
inttemp=pow(g,3.0)+pow(s,3.0)+pow(b,3.0);
if(n==temp)
returntrue;
else
returnfalse;
}
intmain()
{
inta;
scanf("%d",&a);
if(IsSxh(a))
{
printf("%d是水仙花數 ",a);
}
else
printf("%d不是水仙花數 ",a);
return0;
}
『貳』 用C語言編程:輸出2~100之間所有完數,完數是指該數各因子之和等於該數本身
C語言程序如下:
#include <stdio.h>
int main()
{
long int i,j,sum;
for(i=2;i<100;i++)
{ sum=0;
for(j=2;j<=i/2;j++)
{
if(i%j==0)
{
sum=sum+j;
}
}
if(i==sum+1)
printf("%d ",i);
}
}
(2)c語言一個數加一個數等於本身擴展閱讀:
如果一個數恰好等於它的因子之和,則稱該數為「完全數」。
第一個完全數是6,它有約數1、2、3、6,除去它本身6外,其餘3個數相加,1+2+3=6。
第二個完全數是28,它有約數1、2、4、7、14、28,除去它本身28外,其餘5個數相加,1+2+4+7+14=28。
第三個完全數是496,有約數1、2、4、8、16、31、62、124、248、496,除去其本身496外,其餘9個數相加,1+2+4+8+16+31+62+124+248=496。後面的完全數還有8128、33550336等等。
『叄』 一個C語言問題,謝謝
這是一個輸出1000以內因子加和等於本身的數的程序……
如果放在定義的時候,程序編譯是沒有錯誤的,但因為m會一直累加而不被重新歸零,執行始終沒有達成m==s的條件,所以不會在控制台輸出結果……
『肆』 c語言編程題"編程求1-1000之間的所有完數。完數:該數所有的因子(除去本身)相加之和等於其自身。
#include<stdio.h>
intmain()
{
inti=0,j=0,res;
for(i=1;i<=1000;i++)
{
res=0;
for(j=1;j<i;j++)
{
if(i%j==0)res+=j;
}
if(res==i)printf("%d",i);
}
printf(" ");
return0;
}
『伍』 C語言,一個字元和數字相加,一個奇怪的問題,求大神
char類型表示一個有符號數的范圍為:-128到127
z的ascii值為122
122+6=128
在內存中,128用一個位元組表示就是
1000 0000
而這個數值,按整型輸出時,表示的就是-128(補碼)
解決你的問題,只需要將ch定義成無符號數就可以了
unsigned char ch ;
『陸』 C語言 怎麼把一個數組內儲存的數相加
假設數組:a[n];
int sum=0;
for(int i=0;i<n;i++)
{
sum += a[i];
}
『柒』 如何用C語言產生隨機數,隨機數的加和是一確定的數
思路:
1 先獲取到加和值;
2 輸入加和值范圍內的一個隨機數;
3 用加和值減去獲取到的隨機數,這樣就得到了另外一個數;
4 循環執行,直到獲取到符合要求數量的數值為止。
以獲取10組數值為例,代碼如下:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
intmain()
{
ints;
inti,n;
srand(time(NULL));//設置隨機數種子。
scanf("%d",&s);//輸入加和值。
for(i=0;i<10;i++)//獲取10組要求的數值。
{
n=rand()%s;//獲取一個0~s-1的隨機數。
printf("%d+%d=%d ",n,s-n,s);//輸出結果。
}
return0;
}
『捌』 C語言 有一組數字,任意幾個數相加,使的其和等於給定值,求最多可以選幾個數字
直接暴力搜索,O(2^n),可以用二進制思想,0代表不選,1代表選,然後看一下滿不滿足和等於給定值,如果可以滿足記錄一下選了幾個,越多越好,然後最多的個數就是答案。
『玖』 C語言輸出一個3位數,其各位數字立方和等於該數本身
#include<stdio.h>
intmain(intargc,char*argv[]){
inti,s,t;
for(i=111;i<1000;i++){
s=(t=i%10)*t*t+(t=i/10%10)*t*t+(t=i/100)*t*t;
if(s==i)
printf("%d",s);
}
printf(" ");
return0;
}