c++ 编程题目小窍门

2019.3.13

1.获取一个N位数num的每一个数字项,如:1234,每项是1,2,3,4

int a[N],k=pow(N);//pow为自定义函数,其功能为求10的N次方,之所以不用系统pow函数,是因为其返回值是double类型

int j=0;//计数用

for(j,k;k>=10;j++){

      a[j]=(num%k)/(k/10);

      k/=10; 

}

遍历完成之后,a数组按照原数的高位到顺序保存各数数字;

 

不知道什么时候的更新-----

1.组合数,给定若干个数字,找到他们之间所有相互结合构成的数字,例如2,5,8,组合数共有25,28,52,58,82,85六个

小技巧:组合数可以通过两个for循环得到,内循环判断是否相同,若满足条件,则有a+b*10得到数字

2.统计数和的个数并输出

        计算除一些数字之和,要得到他们之间有多少个不同的数字,并且输出这些,

小技巧:首先寻找这些数字之和的最大个数,例如,100以内的数字之和最大为18,将这个和作为下标就行验证,若存在一项为0,则这是一个新的和,置为1(若要统计个数,则可以置为++);输出时,只需判断是否为0,并输出下标即可

例如: if(num[sum]==0){
num[sum]=1;

   count++;

}

 

for(int i=0;i<37;i++)

                        if(num[i])

 

cout<<i<<(--count?" ":'\0');

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值