c語言bn
A. 漢諾塔c語言的問題
n=1時,就直接執行形參a到形參c(按照圖片格式列印輸出字元串就行了啊)。
其它情況按照遞歸,先通過c先把小的都移動到b,再把最大的移動到c,最後通過a把b所有盤移動到c。
最後輸出就是你圖中效果。
#include<stdio.h>
void doMove(int n,char x,char y);
void move(int n,char a,char b,char c);
int main()
{
int n;
scanf("%d",&n);
move(n,'A','B','C');
}
void move(int n,char a,char b,char c)
{
if(n==1)
doMove(n,a,c); //n==1個時直接從a移動到c
else
{
move(n-1,a,c,b); //通過c從a移動到b,移動n-1個盤子
doMove(n,a,c); //然後把要移動的最後一個也就是最大的一個移動到c
move(n-1,b,a,c); //最後通過a從b移動到c,移動n-1個盤
}
}
void doMove(int n,char x,char y)
{
printf("%c move %d號 ->%c ",x,n,y);
}
B. C語言 程序
四個空分別添
a[i]; i++;
b[j];j++;
C. C語言用這個FUN還有DO循環BN
這里列印的是fun(3,5) 和fun(12,8)的值
函數fun中
使用的是輾轉相處福。
退出循環時的n值,為參數m n的最大公約數
而a b就是初始的m n值。
這樣 返回的
a*b/n就是參數m n的最小公倍數。
於是
fun(3,5) = 15
fun(12,8)=24
輸出為
15 24
D. 用c語言編輯bn=an異或bn-1,急!!答出來可支付寶五元!!!!
一般都得用數組完成。所以這一句可寫成b[n]=a[n]^b[n-1];即可。其中a、b都是已定義的合法數組。
E. C語言WHILE這個BN不向B2
程序中 先輸入一個x值,然後在x>0情況下,賦值b[++n]=x
然後輸入下一個x
n初始為0,先自加後取值。
於是在題目輸入下
b[1] ~b[6] 六個元素會被賦值為7 5 2 9 4 8
輸出n值為6
輸出b[2]值為5
然後 對i= 2 3 4 5 6循環
如果b[i]比b[p]小,則p=i
這樣 b[p]就是b[1]到b[6]的最小值 ,也就是2
p=3
輸出
p= 3b[p]= 2
F. c語言問題求解
#include
#include
using namespace std;
#define N 1000
#define INF 65535
typedef struct
{
int a[N];//記錄多項式
int len;//記錄多項式的長度
}Ploy;
void ADD(Ploy A,Ploy B,Ploy *M)
/*多項式A與多項式B相加,得到多項式M*/
{
int la=A.len,lb=B.len,i;
void PrintPloy1(Ploy A)
{
int i;
printf(" %dx^%d ",A.a[A.len],A.len);
for(i=A.len-1;i>=1;i--)
{
if(A.a[i]==0) ;
else if(A.a[i]==1) printf(" + x^%d ",i);
else if(A.a[i]==-1) printf(" - x^%d ",i);
else
{
if(A.a[i]>0)
printf("+ %dx^%d ",A.a[i],i);
else
printf("- %dx^%d ",-A.a[i],i);
}
}
if(A.a[0]==0) ;
else if(A.a[0]>0)
printf(" + %d",A.a[0]);//列印x的0次項
else
printf(" - %d",-A.a[0]);
printf("\n");
return ;
}
void PrintPloy2(Ploy A)
{
int i=0;
while(A.a[i]==0) ++i;
if(i==0) printf("%d",A.a[i]);
else {
if(A.a[i]==1) printf("x^%d",i);
else if(A.a[i]==-1) printf("-x^%d",i);
else printf("%dx^%d",A.a[i],i);}
for(++i;i1)
{
printf(" + %dx^%d",A.a[i],i);
}
else if(A.a[i]>id;
while(2)
{
if(id=='1')
{
ADD(A,B,&M);
printf("降冪輸出請按1,升冪輸出請2!\n");
cin>>sh;
}
G. 關於C語言中小數的保留問題
答案是B
n*100可以把第三位小數變成第一位小數
之後再+0.5的話,如果原來小數部分是大於等於0.5的話,那麼整數部分就會加1,否則不變(符合四捨五入)
m = n*100+0.5可以把等號右邊的數值的整數部分存下來,就是四捨五入後的結果
m/100.0是還原小數位到2位
H. c語言 正整數如何表示
假如等式結果是x
然後定義int y;
y取x的整數部分,y=x;
最後判斷 if(( x-(float)y)== 0.000) // 減去整數部分,判斷小數部分是否為0
如果等式成立,就是你要的結果
I. c語言如何實現bn=an異或bn-1
異或符號是 ^
其他的按照循環做就行
int a[100] ={……} ;
int b[100];
b[0]=……;
for (int i=1,i<100;i++)
{
b[i]=a[i]^b[i-1];
}