测训7 16省Ca1-网友年龄16省Cc3-平方怪圈,16省Ja3-搭积木,16省Ca6-寒假作业,算法训练 - 摆动序列

16省Ca1-网友年龄


题目链接.

【思路】枚举
#include <bits/stdc++.h>

using namespace std;

int main()
{    int a,cnt=0;
    for(a=27;a<=99;a++){
        int b=a%10;
        int c=a/10;
        int s=b*10+c*1;
        if(s+27==a)  {cout<<a<<endl;
        cnt++;}
    }
    cout << cnt << endl;
    return 0;
}

16省Cc3-平方怪圈

题目链接
如果把一个正整数的每一位都平方后再求和,得到一个新的正整数。
对新产生的正整数再做同样的处理。

如此一来,你会发现,不管开始取的是什么数字,
最终如果不是落入1,就是落入同一个循环圈。

请写出这个循环圈中最大的那个数字。

请填写该最大数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。

输入
没有输入。

输出
1个整数
【思路】题目考试时,我没看懂,不过写法记一下吧

#include<bits/stdc++.h>
using namespace std;
int main(){
    int b;
    cin>>b;
    int maxx=0;
    for(int i=1;i<=b;i++){//重点
        int a=i;
        while(a!=1){
            if(a%2==0) a/=2;
            else  a=a*3+1;
            if(maxx<a)
                maxx=a;
        }
    }
    cout<<maxx<<endl;


return 0;}

16省Ja3-搭积木


题目链接.

【思路】全排列 板子题 写好检测就是

#include <bits/stdc++.h>

using namespace std;
int a[]={0,1,2,3,4,5,6,7,8,9},num=0;
int main()
{   do{
     if( (a[0]<a[1]&&a[0]<a[2]) && (a[1]<a[3]&&a[1]<a[4]) && (a[2]<a[4]&&a[2]<a[5]) && (a[3]<a[6]&&a[3]<a[7]) && (a[4]<a[7]&&a[4]<a[8]) && (a[5]<a[8]&&a[5]<a[9]) )
		num++;

    }while(next_permutation(a,a+10));
    cout<<num<<endl;
    return 0;
}

16省Ca6-寒假作业


题目链接.
【思路】与上提一样 可以用全排列

#include <bits/stdc++.h>

using namespace std;
int a[]={1,2,3,4,5,6,7,8,9,10,11,12,13},num=0;
void check(){
     if( (a[0]+a[1]==a[2]) && (a[3]-a[4]==a[5]) && (a[6]*a[7]==a[8]) && (a[10]/a[11]==a[9]))
		num++;
}
int main()
{   do{

      check();
    }while(next_permutation(a,a+13));
    cout<<num<<endl;
    return 0;
}

算法训练 - 摆动序列


题目链接.
我们知道当序列个数至少为2时那么k的值必须大于等于2,那么序列的个数一定是小于等k的。所以我们可以建立一个dp[i][j] i表示序列中的数字个数,j表示k的取值.那我们可以知道当j=2时 对应k的满足上面要求的序列的个数。dp[i][2]=i*(i-1) (i表示对应的k的值)当我们初始化后就是求对应dp的满足上面要求的序列的个数。
我们dp[i][j]可以把k的上一个数的对应种数算到里面去,这种是当没有加当前k的这个值的序列个数,那我们要加当前k的数那么就应该找k-1的数在j-1里面的序列个数就是加当前k有可能组出的摆动序列。那么转移方程就是:dp[i][j]=dp[i-1][j]+dp[i-1][j-1]

#include<bits/stdc++.h>
using namespace std;
int main(){
     int dp[21][21];
     memset(dp,0,sizeof(dp));
     int K;
     cin>>K;
     int k,n,ans=0;
     for(k=2;k<=K;k++){
        for(n=2;n<=k;n++){
        if(n==2) dp[k][n]=k*(k-1);
        else if(k==n)  dp[k][n]=2;
        else dp[k][n]=dp[k-1][n-1]+dp[k-1][n];
        }

     }
      for(int x=2;x<=K;x++){
        ans+=dp[K][x];
     }
     cout<<ans<<endl;

return 0;}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用以下代码来计算 Delphi 中的 CRC16 CCITT-FALSE 校验值: ```Delphi function CalcCRC16(const Data: array of Byte; Len: Integer): Word; const Crc16Table: array[0..255] of Word = ( $0000, $1021, $2042, $3063, $4084, $50A5, $60C6, $70E7, $8108, $9129, $A14A, $B16B, $C18C, $D1AD, $E1CE, $F1EF, $1231, $0210, $3273, $2252, $52B5, $4294, $72F7, $62D6, $9339, $8318, $B37B, $A35A, $D3BD, $C39C, $F3FF, $E3DE, $2462, $3443, $0420, $1401, $64E6, $74C7, $44A4, $5485, $A56A, $B54B, $8528, $9509, $E5EE, $F5CF, $C5AC, $D58D, $3653, $2672, $1611, $0630, $76D7, $66F6, $5695, $46B4, $B75B, $A77A, $9719, $8738, $F7DF, $E7FE, $D79D, $C7BC, $48C4, $58E5, $6886, $78A7, $0840, $1861, $2802, $3823, $C9CC, $D9ED, $E98E, $F9AF, $8948, $9969, $A90A, $B92B, $5AF5, $4AD4, $7AB7, $6A96, $1A71, $0A50, $3A33, $2A12, $DBFD, $CBDC, $FBBF, $EB9E, $9B79, $8B58, $BB3B, $AB1A, $6CA6, $7C87, $4CE4, $5CC5, $2C22, $3C03, $0C60, $1C41, $EDAE, $FD8F, $CDEC, $DDCD, $AD2A, $BD0B, $8D68, $9D49, $7E97, $6EB6, $5ED5, $4EF4, $3E13, $2E32, $1E51, $0E70, $FF9F, $EFBE, $DFDD, $CFFC, $BF1B, $AF3A, $9F59, $8F78, $9188, $81A9, $B1CA, $A1EB, $D10C, $C12D, $F14E, $E16F, $1080, $00A1, $30C2, $20E3, $5004, $4025, $7046, $6067, $83B9, $9398, $A3FB, $B3DA, $C33D, $D31C, $E37F, $F35E, $02B1, $1290, $22F3, $32D2, $4235, $5214, $6277, $7256, $B5EA, $A5CB, $95A8, $8589, $F56E, $E54F, $D52C, $C50D, $34E2, $24C3, $14A0, $0481, $7466, $6447, $5424, $4405, $A7DB, $B7FA, $8799, $97B8, $E75F, $F77E, $C71D, $D73C, $26D3, $36F2, $0691, $16B0, $6657, $7676, $4615, $5634, $D94C, $C96D, $F90E, $E92F, $99C8, $89E9, $B98A, $A9AB, $5844, $4865, $7806, $6827, $18C0, $08E1, $3882, $28A3, $CB7D, $DB5C, $EB3F, $FB1E, $8BF9, $9BD8, $ABBB, $BB9A, $4A75, $5A54, $6A37, $7A16, $0AF1, $1AD0, $2AB3, $3A92, $FD2E, $ED0F, $DD6C, $CD4D, $BDAA, $AD8B, $9DE8, $8DC9, $7C26, $6C07, $5C64, $4C45, $3CA2, $2C83, $1CE0, $0CC1, $EF1F, $FF3E, $CF5D, $DF7C, $AF9B, $BFBA, $8FD9, $9FF8, $6E17, $7E36, $4E55, $5E74, $2E93, $3EB2, $0ED1, $1EF0); var I: Integer; Crc: Word; begin Crc := $FFFF; for I := 0 to Len - 1 do begin Crc := (Crc shr 8) xor Crc16Table[(Crc xor Data[I]) and $FF]; end; Result := Crc; end; ``` 你可以将需要计算 CRC 校验值的字节数组和字节数组的长度作为参数传入该函数,函数会返回计算出的 CRC16 校验值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值