用天梯赛打开暑假生活第二天

发布时间 2023-06-18 23:22:30作者: 寒心小呆

从坐牢到入门的程序设计(2)

开始时间2023-06-18 20:00:07

结束时间2023-06-18 23:18:06

前言:还说什么前言,卷吧。

L1-006 连续因子

一、题目要求

二、程序功能测试及说明

  首先吸收一个数字,然后输出最长连续因子的个数,其次输出最小 连续因子序列。

 三、程序设计思路及结构说明

  先吸收这个整数,然后用一个简单的循环判断因子的个数,并把所有因子放入一个数组中,再进行嵌套循环,从数组第一个数开始进行到数组的最后一个数,内层循环是如果后一个数组内的数减一不等于前一个数组内的数,跳出循环,由此可判断以每一个数组内的数为起点后有多少连续因子,在内层循环内该值用sum存储。sum进行比较找出最大的,同时记录此时数组下标。接着按照格式打印。

四、源代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long int n,temp=0;
    cin>>n;
    int i=0,j=0;
    long long int a[n];
    for(i=1;i<=n;i++)
    {
        if(n%i==0)
        {
            a[temp]=i;
            temp+=1;
        }
    }
    //printf("%d",temp);测试因子数目
    long long int sum=0,max=0,maxi=0;
    for(i=0;i<temp;i++)
    {
        for(j=0;j<temp-i;j++)
        {
            if(a[i+j]!=(a[i+j+1]-1))
            {
                sum=j+1;
                break;
            }
                //printf("%d\n",j);
        }
        //printf("%d\n",sum);
        if(sum>=max)
        {
            max=sum;
            //printf("%d",a[i]);
            if(a[i]!=1)
            {
                maxi=i;
                //printf("%d",maxi);
            }
        }
        //printf("%d",i);//测试i
    }
    //printf("%d %d",max,maxi);
    printf("%lld\n",max);
    for(j=0;j<max;j++)
    {
        printf("%lld",a[maxi+j]);
        if(j!=max-1)printf("*");
    }
}

ps这个地方有问题,存在答案错误,不知道这么改。20分一共得到11分。

L1-007 念数字 

一、题目要求

 二、程序功能测试及说明

  程序功能为读入一个数,然后将它读出来。

 三、程序设计思路及结构说明

  首先分为三种情况,第一种等于0,直接读,第二种大于零,该怎么读怎么读,第三种小于零,先读fu然后将数字去绝对值然后读。定义一个二维字符数组为0~9各个数字的拼音,接着判断所给整数的位数,从最高位开始找字符数组并输出。

四、源代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n,t,b[10]={0};
    cin>>n;
    if(n<0){printf("fu ");n=-n;}
    if(n==0){printf("ling");
        return 0;}
    char a[10][100]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
     while(n!=0)
     {
         b[t]=n%10;
      n/=10;
      t++;   
     }
     for(int i=t-1;i>=0;i--)
     {
         printf("%s",a[b[i]]);
      if(i>0)printf(" ");
     }
    return 0;
}

 

L1-008 求整数段和

一、题目要求

 二、程序功能测试及说明

  首先输入两个数,根据两个数给出这两个数之间的所有数,最后输出这些数的和。

 三、程序设计思路及结构说明

  首先读入两个数,计算两个数之间的差距,以0为初始表达式差距为范围做循环,以五为字符宽度向右看齐输出,当初始表达式的值+1对5取余等于零并且初始化表达式不为1输出换行,接着sum加上初始化表达式再加上较小的数,当初始化表达式大于差距结束循环。最后按照格式输出和。

四、源代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int a,b,i,sum=0;
    cin>>a>>b;
    int c=b-a;
    for(i=0;i<=c;i++)
    {
        printf("%5d",a+i);
        if(((i+1)%5==0)&&(i!=c))printf("\n");
        sum=sum+a+i;
    }
    printf("\n");
    printf("Sum = %d",sum);
}

总结:总结就是今天搬东西五点起,太累了而且能力不够只能写三题。

每日一mo:你说,一个老师是喜欢懂事的孩子还是不懂事的孩子?如果我是老师,我还是希望孩子不懂事。我不希望,许久未见的他懂事的让我心疼,因为我知道懂事的孩子得吃不少苦,你得永远自己找糖吃,除非遇见那个伤害自己都要温暖你的人......今天搬东西回本部,被安排帮女生搬行李,当时下车后有几个咱们院的学长围着我们班的女生帮忙搬东西,后来跟几个学长闲聊的时候,有一个学长就说帮女朋友搬东西搬得挺累的,我的大脑故意遗忘了那些学长的脸,甚至不记得这个学长当时帮助了我们没有,唉,这种感觉真他妈的熟悉啊艹!很久很久以前有一个女生跟一个高高帅帅的男生聊些陌生的话题,以前有一个女生和一个男生不经意间走到一起,以前有一个女生不再正眼看人,以前有一个女生总是和一个熟悉的男生一起上课,以前在食堂松开了硬要扯开的手,每当这种事情发生的时候,总会偷偷离开或者强装开心。你说,这是每个人因其年少不可及之物抱憾终生么........其实现在也挺好的,不是么?只要这些事情还在可控范围内,留在心底就好啦.......