- 点击跳转专栏=>Unity3D特效百例
- 点击跳转专栏=>案例项目实战源码
- 点击跳转专栏=>游戏脚本-辅助自动化
- 点击跳转专栏=>Android控件全解手册
- 点击跳转专栏=>Scratch编程案例
- 点击跳转=>软考全系列
- 点击跳转=>蓝桥系列
👉关于作者
专注于Android/Unity和各种游戏开发技巧,以及各种资源分享(网站、工具、素材、源码、游戏等)
有什么需要欢迎底部卡片私我,获取更多支持,交流让学习不再孤单。
👉实践过程
需要所有整理的文档可底部卡片联系我,直接发压缩包。
😜饮料换购
乐羊羊饮料厂正在举办一次促销优惠活动。乐羊羊C型饮料,凭3个瓶盖可以再换一瓶C型饮料,并且可以一直循环下去(但不允许暂借或赊账)。
请你计算一下,如果小明不浪费瓶盖,尽量地参加活动,那么,对于他初始买入的n瓶饮料,最后他一共能喝到多少瓶饮料。
输入:一个整数n,表示开始购买的饮料数量(0<n<10000)
输出:一个整数,表示实际得到的饮料数
例如:
用户输入:
100
程序应该输出:
149
用户输入:
101
程序应该输出:
151
#include <iostream>
using namespace std;
int main(int argc, const char *argv[]) {
int n;
scanf("%d", &n);
int ans = 0;
while (n >= 3) {
n -= 2;
ans += 3;
}
ans += n;
cout << ans << endl;
return 0;
}
😜方格填数
如下的10个格子
+--+--+--+
| | | |
+--+--+--+--+
| | | | |
+--+--+--+--+
| | | |
+--+--+--+
填入0~9的数字。要求:连续的两个数字不能相邻。
(左右、上下、对角都算相邻)
一共有多少种可能的填数方案?
请填写表示方案数目的整数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
#include <iostream>
#include <stdlib.h>
using namespace std;
int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int ans;
bool check(){
if(abs(a[0]-a[1])==1||
abs(a[0]-a[3])==1||
abs(a[0]-a[4])==1||
abs(a[0]-a[5])==1||
abs(a[1]-a[2])==1||
abs(a[1]-a[4])==1||
abs(a[1]-a[5])==1||
abs(a[1]-a[6])==1||
abs(a[2]-a[5])==1||
abs(a[2]-a[6])==1||
abs(a[3]-a[4])==1||
abs(a[3]-a[7])==1||
abs(a[3]-a[8])==1||
abs(a[4]-a[5])==1||
abs(a[4]-a[7])==1||
abs(a[4]-a[8])==1||
abs(a[4]-a[9])==1||
abs(a[5]-a[6])==1||
abs(a[5]-a[8])==1||
abs(a[5]-a[9])==1||
abs(a[6]-a[9])==1||
abs(a[7]-a[8])==1||
abs(a[8]-a[9])==1)
return false;
return true;
}
/*考虑第k个位置,一般从0开始*/
void f(int k) {
//出口
if (k == 10) {
bool b = check();
if(b)
ans++;
return;
}
for (int i = k; i < 10; ++i) {
//尝试将位置i与位置k交换,以此确定k位的值
{
int t = a[i];
a[i] = a[k];
a[k] = t;
}
f(k + 1);
// 回溯
{
int t = a[i];
a[i] = a[k];
a[k] = t;
}
}
}
int main(int argc, const char *argv[]) {
f(0);
cout << ans << endl;
return 0;
}
😜四平方和
四平方和定理,又称为拉格朗日定理:
每个正整数都可以表示为至多4个正整数的平方和。
如果把0包括进去,就正好可以表示为4个数的平方和。
比如:
5 = 0^2 + 0^2 + 1^2 + 2^2
7 = 1^2 + 1^2 + 1^2 + 2^2
(^符号表示乘方的意思)
对于一个给定的正整数,可能存在多种平方和的表示法。
要求你对4个数排序:
0 <= a <= b <= c <= d
并对所有的可能表示法按 a,b,c,d 为联合主键升序排列,最后输出第一个表示法
程序输入为一个正整数N (N<5000000)
要求输出4个非负整数,按从小到大排序,中间用空格分开
例如,输入:
5
则程序应该输出:
0 0 1 2
再例如,输入:
12
则程序应该输出:
0 2 2 2
再例如,输入:
773535
则程序应该输出:
1 1 267 838
#include <iostream>
#include <cstdio>
#include <map>
#include <cmath>
using namespace std;
int N;
map<int,int>cache;
int main(int argc, const char * argv[]) {
scanf("%d",&N);
for (int c = 0; c*c <=N/2 ; ++c) {
for (int d = c; c*c+d*d <= N; ++d) {
if(cache.find(c*c+d*d)==cache.end())
cache[c*c+d*d]=c;
}
}
for (int a = 0; a*a <=N/4 ; ++a) {
for (int b = a; a*a+b*b<=N/2 ; ++b) {
if(cache.find(N-a*a-b*b)!=cache.end()){
int c = cache[N-a*a-b*b];
int d=int(sqrt(N-a*a-b*b-c*c));
printf("%d %d %d %d\n",a,b,c,d);
return 0;
}
}
}
return 0;
}
😜垒骰子_递归
赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。
经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!
我们先来规范一下骰子:1 的对面是 4,2 的对面是 5,3 的对面是 6。
假设有 m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。
atm想计算一下有多少种不同的可能的垒骰子方式。
两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。
由于方案数可能过多,请输出模 10^9 + 7 的结果。
不要小看了 atm 的骰子数量哦~
「输入格式」
第一行两个整数 n m
n表示骰子数目
接下来 m 行,每行两个整数 a b ,表示 a 和 b 数字不能紧贴在一起。
「输出格式」
一行一个数,表示答案模 10^9 + 7 的结果。
「样例输入」
2 1
1 2
「样例输出」
544
#define MOD 1000000007
#include <iostream>
using namespace std;
int n, m;
int op[7];
bool conflict[7][7];
/**
* 上一层定好了朝上的数字为up的情况下,垒好cnt个骰子的方案数
* @param up
* @param cnt
* @return
*/
long long int f(int up, int cnt) {
if (cnt == 0)
return 4;
long long ans = 0;
for (int upp = 1; upp <= 6; ++upp) {
if (conflict[op[up]][upp])continue;
ans =(ans+ f(upp, cnt - 1))%MOD;
}
return ans;
}
void init() {
op[1] = 4;
op[4] = 1;
op[2] = 5;
op[5] = 2;
op[3] = 6;
op[6] = 3;
}
int main(int argc, const char *argv[]) {
init();
scanf("%d %d", &n, &m);
for (int i = 0; i < m; ++i) {
int x, y;
scanf("%d %d", &x, &y);
conflict[x][y] = true;
conflict[y][x] = true;
}
long long ans = 0;
for (int up = 1; up <= 6; ++up) {
ans = (ans + 4 * f(up, n - 1)) % MOD;
}
printf("%lli", ans);
return 0;
}
👉其他
📢作者:小空和小芝中的小空
📢转载说明-务必注明来源:https://zhima.blog.csdn.net/
📢这位道友请留步☁️,我观你气度不凡,谈吐间隐隐有王者霸气💚,日后定有一番大作为📝!!!旁边有点赞👍收藏🌟今日传你,点了吧,未来你成功☀️,我分文不取,若不成功⚡️,也好回来找我。
温馨提示:点击下方卡片获取更多意想不到的资源。