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

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;
}

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值