31:开关灯 32:求分数序列和 33:计算分数加减表达式的值 34:求阶乘的和

本文探讨了使用C++解决一系列数学和逻辑问题的方法,包括控制一组灯的开关状态、计算分数序列的和、求解分数加减表达式及计算阶乘的累积和。通过代码示例展示了如何运用循环、条件判断和基本算术操作来解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

31:开关灯
恶心的题

#include <iostream>
using namespace std;
    int main(){
        int N,M; //,灯的数量和人数
        cin >>N>>M;
        int li[N]; //创造N个灯
        for(int i=0;i<N;i++){ //遍历一次
            li[i]=1; // 给每个灯1这个值,代表开灯
        }
        for(int j=1;j<M+1;j++){ // 从1个人开始循环 
            int a=0; // 代表每个灯的编号
            for(int j2=1;j2<N+1;j2++){  //再遍历一次,看哪个灯要被关上
                if((a+1)%j==0) { // 如果灯的编号能被人数整除
                 li[a]=li[a]*-1; //给这个灯的值取相反数,-1代表关灯
                }a++;
            }
        }
        for(int k=0;k<N;k++){ //再遍历一次,看哪个灯是关闭的
            if(li[k]==-1){ //如果每个灯的值是-1,代表关灯,输出这个灯的值。
                    if(k==0) cout << k+1; 
                else cout << ","<< k+1;
            }
        }
}

我再也不信什么\b退格再补个空格什么的了,害我重新提交了五遍,一直以为是代码问题

32:求分数序列和

#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
    int main(){
        int n;
        double re=0;
        cin >> n;
        int q[n],p[n];
        for(int i=0;i<n;i++){
            p[0]=1;q[0]=2;
            re +=(double)q[i]/p[i];
            q[i+1] =q[i]+p[i];
            p[i+1] =q[i];
        }
        cout << fixed << setprecision(4) << re;
}

很简单,虽然我不知道为什么那么少人做。
33:计算分数加减表达式的值

#include <iostream>
#include <iomanip>
using namespace std;
    int main(){
    int n,a=1;
    cin >> n;
    double re=0;
    for(int i=1;i<n+1;i++){
        if(i%2==0){a=-1; re +=(double)a/i;}
        else {a=1; re+=(double)a/i;}
    }
    cout <<fixed<<setprecision(4)<< re;
}

34:求阶乘的和

#include <iostream>
#include <iomanip>
using namespace std;
    int main(){
    int n,finally=0,re=0;
    cin >> n;
    for(int i=1;i<n+1;i++){
     re=i;
        for(int k=i;k>2;k--){
            re *=(k-1);
        } finally += re;
    }cout << finally;
}

题倒是都挺简单的(除了第一个),但。。。总感觉老是这样做题赶不上别人,要学点新的吧。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值