AOJ 綜合訓練 2016 12 1

2021-07-25 02:31:51 字數 2788 閱讀 3846

題意分析

根據公式,先用含有n的代數式表示出來pi,然後計算這個近似值和題目給出來的3.14159165作差求絕對值,當差值大於1e-5的時候繼續計算,否則就跳出迴圈輸出。

有幾點需要注意的,首先做除法預算的時候(題目中的n),要為double型別,如果為int型別的話最後結果為0。還有注意題目中的初始條件,即在宣告變數的時候所初始化的值。

#include 

#include

int main()

printf("%d\n",i);

return

0;}

當然還有一種比較nb的寫法。

因為,這題的結果是個常數。

#include 

int main()

題意分析

這題和期中考試最後一道程式題有相似之處。輸出他們的因子,如果是負數的話,先輸出-1,然後輸出他的因子。(這題就是分解質因數?)

上次aoj16級興趣賽有個分解質因數的題。結合了上次打素數表的方法,可以學習一下。

以下是分解質因數的**,不是此題ac**。

#include 

#include

#define max 100001

int a[max];//

0是素數,1是非素數

int main()

}int n;

while(scanf("%d",&n) != eof&&n)elseelse

n = n/i;

}if(n == 1)

}printf("\n");}}

return

0;}

當然打素數表優點就是用空間換取時間,不用多次迴圈判斷素數。

那麼這題也可以用暴力方法。就是對於i∈[2,n]迴圈判斷,如果這個i能整除n,那麼i即為n的因子,輸出i並使n=n/i,迴圈上述判斷流程,直到n=1為止。

下面給出ac**,中間有幾個變數多餘了,還有優化的餘地,大家可以試著優化一下.

#include 

#include

int main()

int temp = n;

for(i = 2;i<=n;i++)elseelse

}temp = ret;}}

}printf("\n");

}return

0;}

題意分析

這題好坑啊。一開始怎麼算都算不出樣例給出的記過,後來汪神說是題目錯了,按正確做法改了發現的確是題目錯了。

首先觀察題目給出來的多項式,x的係數分別為1,3,5,7……奇數次項,而且x^n下面還除了乙個n。前邊的係數,第一項是1,第二項1/2,第三項1 *3 *5/(2 *4 *6)不難發現,分子是奇數的乘積,分母是偶數的乘積,而且x的係數是奇數次增長。都帶有一定規律那麼就可以用迴圈來做。關鍵是,要迴圈到多少次,最後算出的小數才和樣例一樣。

這個大家寫好程式,試著除錯一下就就好了。下面有一點需要注意的:分母在計算時一律轉化成double,否則最後就會發現無論迴圈次數怎麼增加,結果都不變,原因就是算完之後結果為0,無論和結果如何累加,最後都是+0。(一開始我也不知道怎麼回事,卡了半天)

#include 

#include

double get(double x,int n)

return x;

}int main()

else

sgn = -sgn;

i+=2;

}printf("%f\n",ret);

}return

0;}

題意分析

這題比較裸,直接寫個大迴圈算就行好了。

因子的計算,正好可以用到上面b題的思路。直接來**吧。

#include 

#include

int main()

}if(ret == i)

}return

0;}

當然這題結果固定,也可以這麼幹。

#include 

int main()

題意分析

題面理解起來不難。這題有坑。首先是多組輸入輸出。題幹已經告訴了,字串中沒有空格,所以用gets和scanf(%s)都可以。然後處理字串,首先判斷是否是母音字母,是的話原因計數器+1,否則的話,判斷是否是字母(大寫和小寫都包括),如果是的話,子音計數器+1(因為這題有別的字元,比如標點斜槓等等)。別忘了在每組資料讀取後,要初始化計數器。

#include 

#include

#include

int main()

else

if((str[i]>='a' && str[i] <='z') || (str[i]>='a' && str[i]<='z'))

}printf("%d %d\n",cnt1,cnt2);

}return

0;}

題意分析

這題用字串寫比較簡單,就是乙個字串某個字元的交換。如果用陣列的話,還要反覆/10,%10比較麻煩,不如字串。

#include 

#include

#include

int main()

printf("%s\n",str1);

return

0;}

AOJ 綜合訓練 2016 11 24

題意分析 分別讀入10個數,按照他給出的格式輸出就行了。注意每有7個字元 包括空格 include int main 題意分析 給出n個數,公升序排序,然後輸出最大的2個就行了。注意氣泡排序寫法。外層迴圈n 1次,記憶體迴圈n i 1次。include define max 10001 int a ...

python基礎技巧綜合訓練題2

1,判斷乙個字串中的每乙個字母是否都在另乙個字串中,可以利用集合的特性來解,集合的元素如果存在,再次更新 update 是新增不進集合的,那麼集合的長度還是跟原來一樣,如果新增進去,集合長度就會增加 a ghost b hello,can you help me install ghost wind...

計算思維綜合訓練 D 2018102

個人新增了注釋,答案由學校課程組給出,不是原創回答 include using namespace std int daynum 13 bool checkyear int x 判斷給出的年份x是否為閏年 void nxt int a,int b,int c 移動到下乙個日期 if b 12 if ...