幫忙編寫演算法,幫忙編寫一個演算法

2022-03-01 10:19:24 字數 1802 閱讀 6299

1樓:

實現逆轉的函式為void reversequeue(),其他的都是輔助測試所用。

#include "stdio.h"

#include "stdlib.h"

#include "time.h"

#include "math.h"

#define max 10

struct queue

que;

void initial();

int insertqueue(int n);

int delequeue();

void reversequeue();

void printq();

//該函式是為了測試逆轉函式的正確性

void testfun();

int main()

void initial()

2樓:匿名使用者

你都沒說什麼語言

bool ishuiwen(char str)if(i

else return ture;}

求大佬幫編寫一個c語言程式

3樓:匿名使用者

這個問題吧,關鍵是演算法,還有那個「利用一次關係運算結果真假算一次」,那麼每個for迴圈算不算一次?如果知道是固定8個還好,不固定的話,肯定要迴圈呼叫。我試著使用了遞迴來計算,遞迴的開頭就需要判斷一下是不是隻有1個數了,那麼這個判斷if (n==1)是否算一次?

我的思路是這樣的,取第一個數為「偽」基準值,然後把n個數分2半,兩半均等(偶數個)或前一半少1個數(奇數個)。把前半部分n個數加起來,與基準數*n進行比較,如果相等,則問題數在第2部分。否則問題數在第1部分,同時從非問題數那部分取一個數作為基準數,這樣遞迴判斷有問題的那部分,直到只有1個數了,就是問題數。

輸入:1 1 1 1 1 2 1 1

次數    基準數    需要判斷的數     比較             結果    下一次判斷

1        1        1 1 1 1 1 2 1 1  1+1+1+1 == 1*4    真     1 2 1 1

2        1        1 2 1 1          1+2 == 1*2        假     1 2

3        1        1 2              1=1*1             真     2

4        1        2                只有一個數,直接返回

這種演算法說起來,也沒啥效率,如果只有8個數的話,不用遞迴,不判斷是否只有1個數,if...then...else用3次判斷出結果即可。

因為沒啥效率,而且如果if (n==1)也算一次的話,該判斷可以改成if (a[0] == 基準數),這樣的話,如果輸入是1 1 1 1 2 1 1 1的話,第2次遞迴就能返回了。

總的來說程式很無趣,鑽題目的空子,所以源程式就不帖了。

4樓:瘋狂小鳥

#include

main()

}else

}}//當a[0]=a[1]時,說明不同的一定在a[1]之後,因此用a[1]之

//後的值逐個與a[0](或a[1])比較,直接就比較出不同的了。

//當a[0]≠a[1]時,說明不同的一定在a[0]和a[1]其中一個,因

//此用a[0]在與a[2]比較,如果a[0]=a[2],說明a[1]不同,否

//直接說明a[0]不同,因此只比較了兩次。

如圖所示,望採納。。。。。。

用指標編寫程式,用指標編寫一個程式

include include include define max 100 輸入的最大字元數為100 int main printf character total number is d n total printf upper character number is d n count upp...

投資合夥分錢演算法,問一個合夥經營的分錢演算法

你們自己已經說的清楚了啊 利潤的3 7開分嘛 你把所有的成本都刨去 剩下的利潤再分 這有什麼難的 不過責任與義務是根據出資額定的 你們既然各出50 本應平分的 但具體是他在經營 你可以讓些利給他 但是3 7開有點多了 你可以這樣做 理論上平分 但有獎金給經營的人 比如你說的 盈利5萬元 平分2萬五一...

編寫vb程式,求1編寫一個vb程式,求11213141n的值。測試資料n50答案

private sub mand1 click print 第3題 dim n as integer,s as doublen inputbox n 50 for i 1 to n s s 1 i next i print sum n format s,0.00 end sub private su...