笔训【day4】

目录

选择题

1、进制 格式 

2、 数组名在&和sizeof后,表数组本身

3、求二维数组某元素地址

​编辑 ​编辑

4、x = x & (x-1) 二进制位1的个数

​编辑 5、斐波那契递归次数

编程题

1、计算糖果

 2、进制转换


选择题

1、进制 格式 

笔训【day4】_第1张图片

笔训【day4】_第2张图片

十进制转二进制就除2,转八进制就除8,然后再从后往前写。 

笔训【day4】_第3张图片

2、 数组名在&和sizeof后,表数组本身

笔训【day4】_第4张图片

笔训【day4】_第5张图片

3、求二维数组某元素地址

笔训【day4】_第6张图片 笔训【day4】_第7张图片

4、x = x & (x-1) 二进制位1的个数

笔训【day4】_第8张图片

笔训【day4】_第9张图片 5、斐波那契递归次数

笔训【day4】_第10张图片

编程题

1、计算糖果

笔训【day4】_第11张图片

1、A - B = a 2、B - C = b 3、A + B = c 4、B + C = d 这道题目的实质是:判断三元一次方程组是否有解及求解, 这里是小学生都会的问题了^^ 1+3可以得到A=(a+c)/2;4-2可以得到C=(d-b)/2;
2+4可以得到B2=(b+d)/2,3-1可以得到B1=(c-a)/2;
如果B1不等B2则表达式无解 

#include
using namespace std;
int main()
{
    int a,b,c,d;
    cin>>a>>b>>c>>d;
    int A=(a+c)/2;
    int C=(d-b)/2;
    int B1=(c-a)/2;
    int B2=(b+d)/2;
    if(B1!=B2)
    cout<<"No";
    else
    cout<

 2、进制转换

笔训【day4】_第12张图片

#include 
#include 
#include
#include
using namespace std;
int main() {
    string s, table = "0123456789ABCDEF";
    int m, n;
    cin >> m >> n;
    if(m==0)cout << m;
    bool flag = false;
// 如果是负数,则转成正数,并标记一下
    if (m < 0) {
        m = 0 - m;
        flag = true;
    }
// 按进制换算成对应的字符添加到s
    while (m) {
        s += table[m % n];
        m /= n;
    }
    if (flag)
        s += '-';
    reverse(s.begin(), s.end());
    cout << s << endl;
    return 0;
}
// 64 位输出请用 printf("%lld")

 

你可能感兴趣的:(笔训,算法)