<<离散数学>>for其实可以非常酷

1 计算机如何完成多个数相加
2 计算机如何完成通过加法来算乘法
3 标准输入输出流
4 计算机如何完成阶乘
5 计算一个数的颠倒数
6 计算一个数组n的k组合,也就是等于计算一个集合的所有子集,计算一个数组n的k组合排列,也就是要计算一个集合的所有子集的排列,0-K-n。

某人购买的体育彩票猜中了4个号码,这4个号码按照从大到小的顺序组成一个数字可被11整除,将其颠倒过来也可被11整除,编写函数求符合这样条件的4个号码。可被11整除颠倒过来也可被11整除的正整数例如341,它可被11整除,颠倒过来143也可被11整除。体育彩票采用整数1、2、3、……、36表示36种体育运动。

代码采用穷举,非常的罗嗦,虽然是我自己写的,但是依然要批评。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>


 typedef struct databox {
    int datasun[8];
    int *ponit;
 }ps;
int dataint(int *num);
void DataSum(int n);
long JC(int n);
int NI(int sum);
void DataMinus(int n1, int n2, int n3, int n4);
void CP(ps *p);
void Pintobox(int i, ps *box);
void clear(ps *box);
int Mult10(int n);
int main()
{
    ps box,*pbox;
    pbox = &box;
    DataSum(199999990);
    DataMinus(3, 4, 5, 6);
    int c=NI(1234);
    clear(pbox);
    CP(pbox);

}
//1.计算数的阶乘
long JC(int n) {
    int nn = n;
    long sel=1;
    while (nn != 1) {   
        sel = sel*nn;
        nn--;
    }
    return sel;
}
//2.把一个数组的数串,变一个整数,去掉多余的0
int dataint(int *num) {
    int sum=0;
    int st=0;

    for (int j = 7; j >= 0; j--)
    {
        int zz = *(num + j);

        if (zz!=-1) {
            int ww = Mult10(st);
            int ee = zz*ww;
            sum=sum + ee;
            st = st + 1;
        }
    }
    //printf("%d", sum);
    return sum;

}
//3.计算10的n次方
int Mult10(int n)
{
    int sum = 10;
    int m;
    if (n == 0) return 1;
    for (m = 1; m<n; m++) sum *= 10;
    return sum;
}
//4.计算一个数的颠倒数
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值