- 点击跳转专栏=>Unity3D特效百例
- 点击跳转专栏=>案例项目实战源码
- 点击跳转专栏=>游戏脚本-辅助自动化
- 点击跳转专栏=>Android控件全解手册
- 点击跳转专栏=>Scratch编程案例
- 点击跳转=>软考全系列
- 点击跳转=>蓝桥系列
👉关于作者
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,获取更多支持,交流让学习不再孤单。
👉实践过程
需要所有整理的文档可底部卡片联系我,直接发压缩包。
😜牌型种数
小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:
如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
using namespace std;
string pai[13];
int countOf(vector<string> path, string p) {
int ans = 0;
for (int i = 0; i < path.size(); ++i) {
if (path[i] == p)
ans++;
}
return ans;
}
int ans;
void f(int k, vector<string> path) {
if (k == 0)ans++;
for (int i = 0; i < 13; ++i) {
if (countOf(path, pai[i]) == 4)continue;
path.push_back(pai[i]);//拼接,代表采纳这张牌
f(k - 1, path);
path.erase(path.end() - 1);
}
}
void i2s(int num, string &str) {
stringstream ss;
ss << num;
ss >> str;
}
int main(int argc, const char *argv[]) {
for (int i = 1; i <= 13; ++i) {
i2s(i, pai[i - 1]);
}
vector<string> v;
f(13, v);
cout << ans << endl;
return 0;
}
😜煤球数目
有一堆煤球,堆成三角棱锥形。具体:
第一层放1个,
第二层3个(排列成三角形),
第三层6个(排列成三角形),
第四层10个(排列成三角形),
…
如果一共有100层,共有多少个煤球?
请填表示煤球总数目的数字。
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
int pre=1;
int plus=2;
long sum=1;
for (int k = 2; k <=100 ; ++k) {
pre=pre+plus;
sum+=pre;
plus++;
}
cout<<sum<<endl;
return 0;
}
😜寒假作业
现在小学的数学题目也不是那么好玩的。
看看这个寒假作业:
□ + □ = □
□ - □ = □
□ × □ = □
□ ÷ □ = □
每个方块代表1~13中的某一个数字,但不能重复。
比如:
6 + 7 = 13
9 - 8 = 1
3 * 4 = 12
10 / 2 = 5
以及:
7 + 6 = 13
9 - 8 = 1
3 * 4 = 12
10 / 2 = 5
就算两种解法。(加法,乘法交换律后算不同的方案)
你一共找到了多少种方案?
请填写表示方案数目的整数。
#include <cstdio>
using namespace std;
int a[]={1,2,3,4,5,6,7,8,9,10,11,12,13};
int ans;
bool check(){
if(a[0]+a[1]==a[2]&&
a[3]-a[4]==a[5]&&
a[6]*a[7]==a[8]&&
a[9]%a[10]==0&&
a[9]/a[10]==a[11])
return true;
return false;
}
void f(int k){
if(k==13){
if(check()){
printf("%d+%d=%d %d-%d=%d %d*%d=%d %d/%d=%d\n",
a[0],a[1],a[2],
a[3],a[4],a[5],
a[6],a[7],a[8],
a[9],a[10],a[11]);
ans++;
}
}
for (int i = k; i < 13; ++i) {
{int t=a[i];a[i]=a[k];a[k]=t;}
// 提前排除,提升效率
if((k==2&&a[0]+a[1]!=a[2]) || k==5&&a[3]-a[4]!=a[5]){
{int t=a[i];a[i]=a[k];a[k]=t;}
continue;
}
f(k+1);
{int t=a[i];a[i]=a[k];a[k]=t;}
}
}
int main(int argc, const char * argv[]) {
f(0);
printf("%d\n",ans);
return 0;
}
😜奖券数目
有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。
某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“4”的号码,主办单位请你计算一下,
如果任何两张奖券不重号,最多可发出奖券多少张。
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
void i2s(int num, string &str) {
stringstream ss;
ss << num;
ss >> str;
}
int main(int argc, const char * argv[]) {
int ans=0;
for (int i = 10000; i <=99999 ; ++i) {
string s;
i2s(i,s);
if(s.find('4')==string::npos)ans++;
}
cout<<ans<<endl;
return 0;
}
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。