當前位置:首頁 » 編程軟體 » 趣味編程題目

趣味編程題目

發布時間: 2022-09-14 15:43:04

① C/C++編程趣味題

#include<iostream.h>
void main()
{
int d[8]={0},b[9]={1,2,3,4,5,6,7,8,9};
long A[9],B[8];
int i,j,k,lenb,lend;
for(d[0]=0; d[0]<3; d[0]++)//1 2間的運算符
for(d[1]=0; d[1]<3; d[1]++)//2 3間的運算符
for(d[2]=0; d[2]<3; d[2]++)//3 4間的運算符
for(d[3]=0; d[3]<3; d[3]++)//4 5間的運算符
for(d[4]=0; d[4]<3; d[4]++)//5 6間的運算符
for(d[5]=0; d[5]<3; d[5]++)//6 7間的運算符
for(d[6]=0; d[6]<3; d[6]++)//7 8間的運算符
for(d[7]=0; d[7]<3; d[7]++)//8 9間的運算符
{
j=0,k=0, A[0]=b[0];
for(i=0;i<8;i++){
if(d[i]!=0){
j++;
A[j]=b[i+1];
}
if(d[i]==0)
A[j]=10*A[j]+b[i+1];//A存放數據
else if(d[i]==1)
B[k++]=1; //B存放運算符
else
B[k++]=2;
}
lenb=j;
lend=k;
char c[8];long sum=A[0];
for(i=0;i<lend;i++){
if(B[i]==1){
sum=sum+A[i+1];
c[i]='+';
}
else if(B[i]==2){
sum=sum-A[i+1];
c[i]='-';
}
}
if(sum==100){
for(j=0;j<lend;j++)
cout<<A[j]<<c[j];
cout<<A[j]<<'='<<sum<<endl;
}

}
}

正如樓主所說,生成運算符的數組是非常麻煩的,希望有人能夠解決.
由運算符生成數據的演算法我自認為還可以,有什麼問題希望能夠討論!

不好意思,未加註釋,讀起來可能會痛苦

絕對支持此類問題

注:借鑒一樓

我們的演算法大都一樣,用1代表+,用2代表-,沒有運算符就用0來替代
所以就可以把所有可能的運算符數組用 (如果有n種運算可視為n+1進制的數) 3進制的整數替代,工有3^8種組合;
即可以把for 循環中的d[8]改為
d[8]={0}; //初始化全為0
for(int i=0;i<3^8;i++){ //3的8次方用函數可求
int n=8;
do
d[--n]=i%3;
while(i=i/3);
}
雖然在演算法的復雜度上沒什麼提高,但書寫起來就要方便很多

② 【C++】請你提供一些巧妙、有趣的上機練習題(3~4題即可)

http://hi..com/korpus/blog/item/165756fdebdece1308244d2e.html

C/C++語言經典、實用、趣味程序設計編程百例精解(1)2007年06月04日 星期一 20:18C/C++語言經典、實用、趣味程序設計編程百例精解(1) 1.繪制餘弦曲線2.繪制餘弦曲線和直線3.繪制圓4.歌星大獎賽5.求最大數6.高次方數的尾數7.階乘尾數零的個數8.借書方案知多少9.楊輝三角形10.數制轉換11.打魚還是曬網12.抓交通肇事犯13.該存多少錢14.怎樣存錢利最大15.捕魚和分魚16.出售金魚17.平分七筐魚18.有限5位數19.8除不盡的自然數20.一個奇異的三位數21.4位反序數22.求車速23.由兩個平方三位數獲得三個平方二位數24.阿姆斯特朗數25.完全數26.親密數27.自守數28.迴文數29.求具有abcd=(ab+cd)2性質的四位數30.求素數31.歌德巴赫猜想32.可逆素數33.迴文素數34.要發就發35.素數幻方36.百錢百雞問題37.愛因斯坦的數學題38.換分幣39.年齡幾何40.三色球問題41.馬克思手稿中的數學題42.最大公約數和最小公倍數43.分數比較44.分數之和45.將真分數分解為埃及分數46.列出真分數序列47.計算分數的精確值48.新娘和新郞49.委派任務50.誰在說謊51.誰是竊賊52.黑與白53.迷語博士的難題(1)54.迷語博士的難題(2)55.哪個大夫哪天值班56.區分旅客國籍57.誰家孩子跑最慢58.拉丁方陣59.填表格60.1~9分成1:2:3的三個3位數61.1~9組成三個3位的平方數62.由8個整數形成奇特的立方體63.減式還原64.乘式還原65.乘式還原(2)66.除式還原(1)67.除式還原(2)68.九位累進可除數69.魔術師的猜牌術(1)70.魔術師的猜牌術(2)71.約瑟夫問題72.郵票組合73.和數能表示1~23的5個正整數74.可稱1~40磅的4塊砝碼75.10個小孩分糖果76.小明買書77.波松瓦酒的分酒趣題78.求π的近似值79.求π的近似值(2)80.奇數平方的一個有趣性質81.角谷猜想82.四方定理83.卡布列克常數84.尼科徹斯定理85.迴文數的形成86.自動發牌87.黑白子交換88.常勝將軍89.搶3090.搬山游戲91.人機猜數游戲92.人機猜數游戲(2)93.漢諾塔94.兎子產子95.將阿拉伯數字轉換為羅馬數字96.選美比賽97.滿足特異條件的數列98.八皇後問題99.超長正整數的加法100.數字移動

③ 有道c語言的趣味題那位大哥幫忙看一下~不勝感激

先給個啟發
如果答案發郵件給我[email protected]
我覺得這種題自己思考來得有意思
跳水名將
問題描述:5位跳水高手參加10米高台跳水決賽,有好事者讓5人據實力預測比賽結果.
A選手說:B第二,我第三;
B選手說:我第二,E第四;
C選手說:我第一,D第二;
D選手說:C最後,我第三;
E選手說:我第四,A第一.
決賽成績公布之後,每位選手的預測都只說對了一半,即一對一錯.請編程解出
比賽的實際名次.
#include <iostream.h>
void main()
{
int cc1,cc2,cc3,cc4,cc5; //cc1到cc5代表5位選手的邏輯判斷
int A,B,C,D,E; //A,B,C,D,E分別代表5位選手的名次
int g; //問題是否解決的BOOL值
for(A=1; A<=5; A++)
for(B=1; B<=5; B++)
{for(C=1; C<=5; C++)
{for(D=1; D<=5; D++)
{ for(E=1; E<=5; E++)
{ cc1=((B==2)&&(!(A==3)))||((!(B==2))&&(A==3));
cc2=((B==2)&&(!(E==4)))||((!(B==2))&&(E==4));
cc3=((C==1)&&(!(D==2)))||((!(C==1))&&(D==2));
cc4=((C==5)&&(!(D==3)))||((!(C==5))&&(D==3));
cc5=((E==4)&&(!(A==1)))||((!(E==4))&&(A==1));
if(((cc1+cc2+cc3+cc4+cc5)==5)&&(A!=B)&&(A!=C)&&(A!=D)&&(A!=E)&&(B!=C)&&(B!=D)&&(B!=E)&&(C!=D)&&(C!=E)&&(D!=E))
{ g=1;
cout<<"A的名次是:"<<A<<endl;
cout<<"B的名次是:"<<B<<endl;
cout<<"C的名次是:"<<C<<endl;
cout<<"D的名次是:"<<D<<endl;
cout<<"E的名次是:"<<E<<endl;
}}}}};

if(g!=1)
cout<<"Can't found!"<<endl;
}

④ 請問有什麼比較好的練習c/c++的題目嗎

上北大的或者杭電的oj上做題啊,有很多經典題目

⑤ 關於C語言編程 。急!!!!1

這種可以使用遞歸函數
該函數的作用是處理加了一個再加一倍的功能。函數的終止條件是由第10天反推到第一天
偽代碼:
eatCount(count,day)
{
if(day<>1) //如果還未反推到第一天
{
day=day-1; //反推到前一天
eatCount((count+1)*2,day); //前一天是多一個之後再多一倍
}
else //如果已經是第一天了,返回最後結果
{
return count;
}

}

⑥ 編程題跳格子(遞歸演算法,一定!!),謝謝

遞歸啊。。。遞歸函數大概就是:

int dfs(int x, int y) {
if (x > 4 || x < 1 || y > 5 || y < 1) return 0;
if (x == 1 && y == 1) return 1;
return dfs(x - 1, y) + dfs(x, y - 1);
}

主函數裡面輸出dfs(4, 5)的值就可以了。

⑦ 一個c語言的編程題。 趣味編程之隨機點名。

這個可以寫

⑧ C\C++ 趣味編程題目

include <iostream>
using namespace std;
void main(){
int pirate[30];
int i,j,survived;
for(i=0;i<30;i++)
pirate[i]=0;
i=0;j=0;
for(survived=30;survived>1;){
if(pirate[i]==0){
j++;
if(j%7==0){
pirate[i]=1;
cout<<"No."<<i+1<<" private jump"<<endl;
survived-=1;
}
}
i=(i+1)%30;
}
for(i=0;i<30;i++)
if(pirate[i]==0)
cout<<"No."<<i+1<<" private survive"<<endl;
}
這個程序得到的答案是23號海盜生存,不知是否符合樓主的要求,呵呵

⑨ 趣味電腦知識選擇題(1)

A

第一代計算機的特點是操作指令是為特定任務而編制的,每種機器有各自不同的機器語言,功能受到限制,速度也慢;另一個明顯特徵是使用真空電子管和磁鼓存儲數據。
第二代晶體管計算機(1956-1963)
1948年,晶體管的發明大大促進了計算機的發展,晶體管代替了體積龐大電子管,電子設備的體積不斷減小。1956年,晶體管在計算機中使用,晶體管和磁芯存儲器導致了第二代計算機的產生。第二代計算機體積小、速度快、功耗低、性能更穩定。首先使用晶體管技術的是早期的超級計算機,主要用於原子科學的大量數據處理,這些機器價格昂貴,生產數量極少。
1960年,出現了一些成功地用於商業領域、大學和政府部門的第二代計算機。第二代計算機用晶體管代替電子管,還有現代計算機的一些部件:列印機、磁帶、磁碟、內存、操作系統等。計算機中儲存的程序使得計算機有很好的適應性,可以更有效地用於商業用途。在這一時期出現了更高級的COBOL和FORTRAN等語言,以單詞、語句和數學公式代替了含混的二進制機器碼,使計算機編程更容易。新的職業(程序員、分析員和計算機系統專家)和整個軟體產業由此誕生。
第三代集成電路計算機(1964-1971)
雖然晶體管比起電子管是一個明顯的進步,但晶體管還是產生 大量的熱量,這會損害計算機內部的敏感部分。1958年德州儀器的工程師Jack Kilby發明了集成電路IC,將三種電子元件結合到一片小小的矽片上。科學家使更多的元件集成到單一的半導體晶元上。於是,計算機變的更小,公耗更低,速度更快。這一時期的發展還包括使用了操作系統,使得計算機在中心程序的控制協調下可以同時運行許多不同的程序。

熱點內容
電腦買個游戲伺服器 發布:2025-05-10 21:25:15 瀏覽:239
機櫃存儲空間 發布:2025-05-10 21:25:07 瀏覽:265
安卓手機如何修改首屏 發布:2025-05-10 21:17:59 瀏覽:958
緩存關聯替換 發布:2025-05-10 20:56:34 瀏覽:617
開源項目源碼 發布:2025-05-10 20:56:24 瀏覽:35
php文章編輯 發布:2025-05-10 20:56:21 瀏覽:981
夢世界國際版伺服器ip 發布:2025-05-10 20:35:35 瀏覽:257
編程樹遍歷 發布:2025-05-10 20:34:53 瀏覽:402
快牙怎麼傳文件夾 發布:2025-05-10 20:29:08 瀏覽:138
26個字母可以組成多少個密碼 發布:2025-05-10 20:23:21 瀏覽:620