- 點(diǎn)擊跳轉(zhuǎn)專欄=>Unity3D特效百例
- 點(diǎn)擊跳轉(zhuǎn)專欄=>案例項(xiàng)目實(shí)戰(zhàn)源碼
- 點(diǎn)擊跳轉(zhuǎn)專欄=>游戲腳本-輔助自動(dòng)化
- 點(diǎn)擊跳轉(zhuǎn)專欄=>Android控件全解手冊(cè)
- 點(diǎn)擊跳轉(zhuǎn)專欄=>Scratch編程案例
- 點(diǎn)擊跳轉(zhuǎn)=>軟考全系列
- 點(diǎn)擊跳轉(zhuǎn)=>藍(lán)橋系列
??關(guān)于作者
專注于Android/Unity和各種游戲開(kāi)發(fā)技巧,以及各種資源分享(網(wǎng)站、工具、素材、源碼、游戲等)
有什么需要?dú)g迎底部卡片私我,獲取更多支持,交流讓學(xué)習(xí)不再孤單。
??實(shí)踐過(guò)程
需要所有整理的文檔可底部卡片聯(lián)系我,直接發(fā)壓縮包。
??九宮幻方
小明最近在教鄰居家的小朋友小學(xué)奧數(shù),而最近正好講述到了三階幻方這個(gè)部分,三階幻方指的是將1~9不重復(fù)的填入一個(gè)3*3的矩陣當(dāng)中,使得每一行、每一列和每一條對(duì)角線的和都是相同的。
三階幻方又被稱作九宮格,在小學(xué)奧數(shù)里有一句非常有名的口訣:“二四為肩,六八為足,左三右七,戴九履一,五居其中”,
通過(guò)這樣的一句口訣就能夠非常完美的構(gòu)造出一個(gè)九宮格來(lái)。
4 9 2
3 5 7
8 1 6
有意思的是,所有的三階幻方,都可以通過(guò)這樣一個(gè)九宮格進(jìn)行若干鏡像和旋轉(zhuǎn)操作之后得到。
現(xiàn)在小明準(zhǔn)備將一個(gè)三階幻方(不一定是上圖中的那個(gè))中的一些數(shù)抹掉,交給鄰居家的小朋友來(lái)進(jìn)行還原,
并且希望她能夠判斷出究竟是不是只有一個(gè)解。
而你呢,也被小明交付了同樣的任務(wù),但是不同的是,你需要寫一個(gè)程序~
輸入格式:
輸入僅包含單組測(cè)試數(shù)據(jù)。
每組測(cè)試數(shù)據(jù)為一個(gè)3*3的矩陣,其中為0的部分表示被小明抹去的部分。
對(duì)于100%的數(shù)據(jù),滿足給出的矩陣至少能還原出一組可行的三階幻方。
輸出格式:
如果僅能還原出一組可行的三階幻方,則將其輸出,否則輸出“Too Many”(不包含引號(hào))。
樣例輸入
0 7 2
0 5 0
0 3 0
樣例輸出
6 7 2
1 5 9
8 3 4
int all[8][9] = {{4, 9, 2, 3, 5, 7, 8, 1, 6},
{8, 1, 6, 3, 5, 7, 4, 9, 2},//上下
{2, 9, 4, 7, 5, 3, 6, 1, 8},//左右
{8, 3, 4, 1, 5, 9, 6, 7, 2},//右旋
{4, 3, 8, 9, 5, 1, 2, 7, 6},//右旋:左右
{6, 7, 2, 1, 5, 9, 8, 3, 4},//右旋:上下
{6, 1, 8, 7, 5, 3, 2, 9, 4},//再右旋
{2, 7, 6, 9, 5, 1, 4, 3, 8}}//再右旋之右旋
;
int test(int data[9]) {
int cnt = 0, ans = -1;
for (int i = 0; i < 8; ++i) {
bool ok = true;
for (int j = 0; j < 9; ++j) {
if (data[j] == 0)continue;
if (data[j] != all[i][j]) {
ok = false;
break;
}
}
if (ok) {
cnt++;
ans = i;
}
}
if (cnt == 1) {
return ans;
} else {
return -1;
}
}
int main(int argc, const char *argv[]) {
int data[9];
for (int i = 0; i < 9; ++i) {
scanf("%d", &data[i]);
}
int index = test(data);
if (index == -1) {
printf("Too Many\n");
} else {
printf("%d %d %d\n", all[index][0], all[index][1], all[index][2]);
printf("%d %d %d\n", all[index][3], all[index][4], all[index][5]);
printf("%d %d %d\n", all[index][6], all[index][7], all[index][8]);
}
return 0;
}
??打魚還是曬網(wǎng)
中國(guó)有句俗語(yǔ)叫“三天打魚兩天曬網(wǎng)”。某人從1990年1月1日起開(kāi)始“三天打魚兩天曬網(wǎng)”,問(wèn)這個(gè)人在以后的某一天中是“打魚”還是“曬網(wǎng)”。
*問(wèn)題分析與算法設(shè)計(jì)
根據(jù)題意可以將解題過(guò)程分為三步:
1)計(jì)算從1990年1月1日開(kāi)始至指定日期共有多少天;
2)由于“打魚”和“曬網(wǎng)”的周期為5天,所以將計(jì)算出的天數(shù)用5去除;
3)根據(jù)余數(shù)判斷他是在“打魚”還是在“曬網(wǎng)”;
若 余數(shù)為1,2,3,則他是在“打魚”
否則 是在“曬網(wǎng)”
在這三步中,關(guān)鍵是第一步。求從1990年1月1日至指定日期有多少天,要判斷經(jīng)歷年份中是否有閏年,二月為29天,平年為28天。閏年的方法可以用偽語(yǔ)句描述如下:
如果 ((年能被4除盡 且 不能被100除盡)或 能被400除盡)
則 該年是閏年;
否則 不是閏年。
C語(yǔ)言中判斷能否整除可以使用求余運(yùn)算(即求模)
#include<stdio.h>
int days(struct date day);
struct date{
int year;
int month;
int day;
};
int main()
{
struct date today,term;
int yearday,year,day;
printf("Enter year/month/day:");
scanf("%d%d%d",&today.year,&today.month,&today.day); /*輸入日期*/
term.month=12; /*設(shè)置變量的初始值:月*/
term.day=31; /*設(shè)置變量的初始值:日*/
for(yearday=0,year=1990;year<today.year;year++)
{
term.year=year;
yearday+=days(term); /*計(jì)算從1990年至指定年的前一年共有多少天*/
}
yearday+=days(today); /*加上指定年中到指定日期的天數(shù)*/
day=yearday%5; /*求余數(shù)*/
if(day>0&&day<4) printf("he was fishing at that day.\n"); /*打印結(jié)果*/
else printf("He was sleeping at that day.\n");
}
int days(struct date day)
{
static int day_tab[2][13]=
{{0,31,28,31,30,31,30,31,31,30,31,30,31,}, /*平均每月的天數(shù)*/
{0,31,29,31,30,31,30,31,31,30,31,30,31,},
};
int i,lp;
lp=day.year%4==0&&day.year%100!=0||day.year%400==0;
/*判定year為閏年還是平年,lp=0為平年,非0為閏年*/
for(i=1;i<day.month;i++) /*計(jì)算本年中自1月1日起的天數(shù)*/
day.day+=day_tab[lp][i];
return day.day;
}
*運(yùn)行結(jié)果
Enter year/month/day:1991 10 25
He was fishing at day.
Enter year/month/day:1992 10 25
He was sleeping at day.
Enter year/month/day:1993 10 25
He was sleeping at day.
??階乘尾數(shù)零的個(gè)數(shù)
100!的尾數(shù)有多少個(gè)零?
*問(wèn)題分析與算法設(shè)計(jì)
可以設(shè)想:先求出100!的值,然后數(shù)一下末尾有多少個(gè)零。事實(shí)上,與上題一樣,由于計(jì)算機(jī)所能表示的整數(shù)范圍有限,這是不可能的。
為了解決這個(gè)問(wèn)題,必須首先從數(shù)學(xué)上分析在100!結(jié)果值的末尾產(chǎn)生零的條件。不難看出:一個(gè)整數(shù)若含有一個(gè)因子5,則必然會(huì)在求100!時(shí)產(chǎn)生一個(gè)零。因此問(wèn)題轉(zhuǎn)化為求1到100這100個(gè)整數(shù)中包含了多少個(gè)因子5。若整數(shù)N能被25整除,則N包含2個(gè)因子5;若整數(shù)N能被5整除,則N包含1個(gè)因子5。
#include<stdio.h>
int main()
{
int a,count =0;
for(a=5;a<=100;a+=5) //循環(huán)從5開(kāi)始,以5的倍數(shù)為步長(zhǎng),考察整數(shù)
{
++count; //若為5的倍數(shù),計(jì)數(shù)器加1
if(!(a%25)) ++count; //若為25的倍數(shù),計(jì)數(shù)器再加1
}
printf("The number of 0 in the end of 100! is: %d.\n",count); //打e印結(jié)果
return 0;
}
*運(yùn)行結(jié)果
The number of 0 in the end of 100! is: 24.
??等差素?cái)?shù)列
2,3,5,7,11,13,…是素?cái)?shù)序列。
類似:7,37,67,97,127,157 這樣完全由素?cái)?shù)組成的等差數(shù)列,叫等差素?cái)?shù)數(shù)列。
上邊的數(shù)列公差為30,長(zhǎng)度為6。
2004年,格林與華人陶哲軒合作證明了:存在任意長(zhǎng)度的素?cái)?shù)等差數(shù)列。
這是數(shù)論領(lǐng)域一項(xiàng)驚人的成果!
有這一理論為基礎(chǔ),請(qǐng)你借助手中的計(jì)算機(jī),滿懷信心地搜索:
長(zhǎng)度為10的等差素?cái)?shù)列,其公差最小值是多少?
#include <algorithm>
#include <iostream>
#include <set>
using namespace std;
typedef long long LL;
set<int>all;
bool isPrime(LL t) {
for (int i = 2; i < t / 2; ++i) {
if (t % i == 0)return false;
}
return true;
}
int f(LL a[], int n) {
for (int i = 0; i < n; ++i) {//枚舉首項(xiàng)
LL first = a[i];
for (int delta = 1; delta < a[n - 1] - first; ++delta) {//枚舉公差
int m = first;
for (int j = 1; j < 10; ++j) {//枚舉個(gè)數(shù)
m += delta;
if (all.find(m) == all.end()) //m不是素?cái)?shù)
break;
if (m > a[n - 1])break;
if (j == 9)//已經(jīng)找到10項(xiàng)
return delta;
}
}
}
return -1;
}
const int N=5000;
LL a[N];
int main(int argc, const char *argv[]) {
a[0] = 2;
a[1] = 3;
all.insert(2);
all.insert(3);
int index = 2;
LL t = 5;
while (index < N) {
if (isPrime(t)) {
a[index++] = t;
all.insert(t);
}
t++;
}
cout<<f(a, N)<<endl;
return 0;
}
??其他
??作者:小空和小芝中的小空
??轉(zhuǎn)載說(shuō)明-務(wù)必注明來(lái)源:https://zhima.blog.csdn.net/
??這位道友請(qǐng)留步??,我觀你氣度不凡,談吐間隱隱有王者霸氣??,日后定有一番大作為???。?!旁邊有點(diǎn)贊??收藏??今日傳你,點(diǎn)了吧,未來(lái)你成功??,我分文不取,若不成功??,也好回來(lái)找我。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-610487.html
溫馨提示:點(diǎn)擊下方卡片獲取更多意想不到的資源。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-610487.html
到了這里,關(guān)于藍(lán)橋杯專題-真題版含答案-【九宮幻方】【打魚還是曬網(wǎng)】【階乘尾數(shù)零的個(gè)數(shù)】【等差素?cái)?shù)列】的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!