蓝桥杯练习(1)

1004

题目描述

有一头母牛,它每年年初生一头小母牛。每头小母牛从第四个年头开始,每年年初也生一头小母牛。请编程实现在第n年的时候,共有多少头母牛?

输入

输入数据由多个测试实例组成,每个测试实例占一行,包括一个整数n(0<n<55),n的含义如题目中描述。
n=0表示输入数据的结束,不做处理。

输出

对于每个测试实例,输出在第n年的时候母牛的数量。
每个输出占一行。

样例输入
2
4
5
0
样例输出
2
4
6
递归算法,关键在于找出规律
第n年的数量等于前一年的数量加上前三年的数量
#include<iostream>
using namespace std;
int main()
{
    int i;
    int n;
    int a[55];
    a[0]=1;
    a[1]=2;
    a[2]=3;
    for(i=3;i<55;i++){
        a[i]=a[i-1]+a[i-3];
    }
    while(cin>>n && n!=0){
        cout<<a[n-1]<<endl;
    }
    return 0;
}

1083

题目描述
This is the first problem for test. Since all we know the ASCII code, your job is simple: Input numbers and output corresponding messages.
输入
The input will contain a list of positive integers separated by whitespaces(spaces, newlines, TABs). Please process to the end of file (EOF). The integers will be no less than 32.
输出
Output the corresponding message. Note there is NOT a newline character in the end of output.
样例输入
72 101 108 108 111 44
32 119 111 114 108 100 33
样例输出
Hello, world!

简单说一下题目的意思,意思就是空格换行和制表符作为分割
检测到文本末尾,然后依次将数字转化为ascll码的形式
就像样例那样,最后的结果应该是字母+标点符号的形式
这里用string会比较好操作
用char你并不能直接输出‘a[0]’
用数组挨个存储看起来不大现实
#include <iostream>
#include <string>
using namespace std;
int main()
{
    int n;
    string s;
    while(cin>>n)
    {
        s+=n;
    }
    cout<<s;
    return 0;
}
1084
题目描述
用筛法求之N内的素数。
输入
N
输出
0~N的素数
样例输入
100
样例输出
2
3
5
7
11
13
17
19
23
29
31
37
41
43
47
53
59
61
67
71
73
79
83
89
97

注意范例输出要求是不含1的
因为1不是素数(质数)
我的方法是让它挨个整除
因为定义是只能被1和自身整除
也就是过程中只能有两次是余数为0
当检测到余数为0的时候就输出
#include <iostream>
using namespace std;

int main()
{
  int N;
  int i;
  int j;
  int count;
  int number=0;
  cin>>N;
  
  for(i=2;i<=N;i++){
    for(j=1;j<=i;j++){
      count = i%j;
      if(count == 0){
        number = number +1;
      }
    }
    if(number == 2){
      cout<<i<<endl;
    }
    number = 0;
  }
  
  return 0;
}

 

发表评论

您的电子邮箱地址不会被公开。