方法一
for
(i=1
;i)//n為被分解的的數
emmm超時了,明天在更進。。。。
1.輸入多個字串時`
while(gets(s))//這樣既可
while(gets(s)!=
eof)//會報錯!!!
2.回文質數(洛谷和vjudge都做過)
ps:乙個數既是回文數又是素數
原先的想法
寫兩個函式,乙個判斷素數,乙個判斷回文,超時了。。。看了題解之後
構造回文數!!!偶數字的回文質數只有11
於是我們可以先判斷位數
再分別構造位數為3,5,7的回文質數
#include
#include
intlength
(int n)
return count;
}int
prime
(int n)
intmain()
,d[10005
],count=0;
int d1,d2,d3,d4,t;
while
(scanf
("%d %d"
,&a,
&b)!=
eof)
}for
(i=0
;i)printf
("%d\n"
,d[i]);
printf
("\n");
}return0;
}
3.坑點
1已經知道現有會員n人,把會員從1到n編號,其中會長的號碼是n號,凡是和會長是老朋友的,那麼該會員的號碼肯定和n有大於1的公約數,否則都是新朋友,現在會長想知道究竟有幾個新朋友
##解題思路
原先:寫乙個判斷兩個數最大公約數的函式,從1到n-1每乙個數與n判斷最大公約數,如果是1,則為新朋友,count++
又又又超時了。。。。
後來:1.將n的所有因數存放進乙個陣列裡
2.從1到n-1每個數判斷過去(記為i),因數陣列遍歷,只要i%因數==0,就count++(代表老朋友),break,進入下乙個數的判斷
3.輸出n-count-1
#include
intmain()
for(j=
1;j}printf
("%d\n"
,num-count-1)
;}return0;
}
5.學習使用qsort函式的用法,從小到大
乙個陣列裡兩兩相加的和放在應乙個陣列裡
從大到小排序,逆序輸出m個即可
#include
#include
int b[
5000000];
intcmp
(const
void
*a,const
void
*b)int
main()
}qsort
(b,r,
sizeof
(b[0])
,cmp)
;for
(i=r-
1;i>r-m;i--
)printf
("%d "
,b[i]);
printf
("%d\n"
,b[r-m]);
}return0;
}
寒假訓練2 總結
1 hdu 4810 wall painting 組合數 二進位制拆分 2 hdu 5573 binary tree 二進位制思維題 3 hdu 5501 the highest mark 揹包 貪心 4 hdu 5493 queue 樹狀陣列 二分查詢 5 hdu 3639 hawk and ch...
寒假訓練 day2
定義 窮竭搜尋是將所有的可能性羅列出來,在其中尋找答案的方法。主要介紹深度優先搜尋和廣度優先搜尋。廣度優先搜尋 bfs 也是搜尋的手段之一。它與深度優先搜尋類似,從某個狀態出發探索所有可以到達的狀態。不同之處在於搜尋的順序,廣度優先搜尋總是先搜尋距離初始狀態近的狀態。總結 廣度優先搜尋與深度優先搜尋...
ROS2 筆記0 安裝
作業系統 ubuntu 18.04 確保系統的local支援utf 8。進行如下的命令設定 sudo locale gen en us en us.utf 8 sudo update locale lc all en us.utf 8 lang en us.utf 8 export lang en ...