选择
C
100/8=12...4
12/8=1... 4
1/8=0... 1 所以答案为144
A
printf("%x",参数1); 这里的x==d 按整形打印 x==f 按浮点数打印 x==o按八进制打印
x等于某特定字符才有作用,类似于%Q这种是无效格式,打印时会忽略掉% 直接输出Q
C
D
D
宏在预处理阶段展开,直接替换,优先级要替换后才知道。
C
动态规划 从n=0开始算到n=5
D
free掉指针所指向内容后,需要手动置空。(也可以不置空)
B
a+1表示跳过一整个数组 来到第一行 *(a+1)表示第一行第一个元素
A
64位平台下,指针大小为8
#pragma pack(4);//修改默认对齐数为4
D
动态规划 从f(1)开始往上算
编程题
思路:不知道哪里可以放,但知道哪里不能放,初始化为全部放入,将不能放入的剔除
#include <iostream>
#include <vector>
using namespace std;
//H 行 W列
//直线距离不等于2
//f(i,j) :i 行 j列 能放下蛋糕
//f(i,j)=f(i-2,j)为假 && f(i,j-2)为假
//初始化
int main()
{
int W,H;
cin>>W;
cin>>H;
vector<vector<int>> ans(H,vector<int>(W,1));
int count=0;
for(int i=0;i<H;i++)
{
for(int j=0;j<W;j++)
{
if(ans[i][j]==1)
{
count++;
if(i+2<H)
{
ans[i+2][j]=0;
}
if(j+2<W)
ans[i][j+2]=0;
}
}
}
cout<<count<<endl;
return 0;
}
思路:
“123”转换的结果是
sum=0
sum*10+1->1
sum*10+2->12
sum*10+3->123
class Solution {
public:
int StrToInt(string str)
{
if(str.empty())
return 0;
int symbol = 1;
if(str[0] == '-') //处理负号
{
symbol = -1;
str[0] = '0'; //这里是字符'0',不是0 前面补0不影响 0*10还是0
}
else if(str[0] == '+') //处理正号
{
symbol = 1;
str[0] = '0';
}
int sum = 0;
for(int i=0;i<str.size();++i)
{
if(str[i] < '0' || str[i] > '9')
{
sum = 0;
break;
}
sum = sum *10 + str[i] - '0';
}
return symbol * sum;
}
};