目录
1、
解析:printf(格式化串,参数1,参数2,.….),格式化串: printf第一个参数之后的参数要按照什么格式打印,比如%d--->按照整形方式打印,不过格式串有一定规定,%之后跟上特定的字符才代表一定的格式化。%Q—>无效的格式—>编译器会忽略%,printf("%Q");—>直接输出Q。
所以printf("%%%%\n");会输出%%。
2、
解析:这个程序使用了一个宏定义 SQR(A),用来计算一个表达式的平方。但是,这个宏定义有一个问题,就是没有用括号把 A 包起来,导致在使用宏展开时,可能会出现优先级的错误。
所以SQR(y+z) 实际上被展开为 y+zy+z,而不是 (y+z)(y+z)。随后计算可得到x的值为0。
3、
解析:这个函数是一个递归函数,也就是说它会调用自身来计算结果。这个函数的逻辑是,如果 n 小于 2,就返回 n 本身,否则就返回 2 倍的 foo(n-1) 加上 foo(n-2)。我们先算出f(0)=0, f(1)=1,然后把f(5)变成由f(0),f(1)组成的表达式,就可以计算出答案。
题目解析:从题目里我们知道,如果(x1,y1)放了蛋糕,则满足 ( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4的(x2,y2)不能放蛋糕。
( (x1-x2) * (x1-x2) + (y1-y2) * (y1-y2) ) == 4看起来是一个无解的表达式。
但是我们可以进行加法表达式分解:1+3=4,3+1=4,2+2=4,0+4=4,4+0=4
仔细分析前三个表达式是不可能的,因为(x1-x2) * (x1-x2)表达式结果不能等于2或3。
也就是说( (x1-x2) * (x1-x2) 和(y1-y2) * (y1-y2) )两个表达式一个等于0,一个等于4。
仔细读理解了上面的题目解读,本题就非常简单了,使用vector
- #include
- #include
- using namespace std;
-
- int main() {
- int W, H;
- while (cin >> W >> H)
- {
- int count = 0;
- vector
int>> v; - v.resize(W);
- for (auto& e : v) {
- e.resize(H, 1);
- }
- for (int i = 0; i < W; i++)
- {
- for (int j = 0; j < H; j++)
- {
- if (v[i][j] == 1)
- {
- count++;
- if (i + 2 < W)
- {
- v[i + 2][j] = 0;
- }
- if (j+2
- {
- v[i][j+2]=0;
- }
- }
-
- }
- }
- cout<
- }
-
- }
2、把字符串转换成整数
题目解析:本题本质是模拟实现实现C库函数atoi,不过参数给的string对象。
首先,判断字符串是否为空,如果为空,就返回 0。然后,判断字符串的第一个字符是否是 ‘+’ 或 ‘-’,如果是,就记录下符号,并把字符串去掉第一个字符。接着,遍历字符串的每一个字符,如果是数字,就把它转换成整数,并累加到结果中;如果不是数字,就返回 0。最后,根据符号,返回正数或负数。
str[i] - ‘0’ 是一种把字符转换成整数的方法。它的原理是利用字符的 ASCII 码,也就是每个字符对应的一个数字。例如,字符 ‘0’ 的 ASCII 码是 48,字符 ‘1’ 的 ASCII 码是 49,以此类推,字符 ‘9’ 的 ASCII 码是 57。
- class Solution {
- public:
- int StrToInt(string str)
- {
- if(str.empty())
- {
- return 0;
- }
- int sum=0;
- int sym=1;
- if(str[0]=='-')
- {
- sym=-1;
- str[0]='0';
- }
- if(str[0]=='+')
- {
- str[0]='0';
- }
- for(int i=0;i
size();++i) - {
- if(str[i] < '0' || str[i] > '9')
- {
- sum = 0;
- break;
- }
- sum = sum *10 + str[i] - '0';
- }
- return sum*sym;
-
- }
- };
-
相关阅读:
Apache HTTPD 多后缀解析漏洞
系列四、FileReader和FileWriter
Day4: 5道C++ 面向对象高频题整理
开源模型应用落地-工具使用篇-Ollama(六)
Qt5开发从入门到精通——第四篇十三节(程序启动画面 )
读《趣学算法》:重开算法之门,神奇的兔子数列(斐波那契数列)
算法通过村第十四关-堆|黄金笔记|中位数
【MYSQL】表操作
五分钟了解制造业核心系统的双向集成
(九)React Ant Design Pro + .Net5 WebApi:后端环境搭建-IdentityServer4(一)简单配置
-
原文地址:https://blog.csdn.net/weixin_65592314/article/details/132838946