组长严一格在讨论中说明了算法的需求,先实现了分5级难度,简单随机生成题目的算法.

 

 1 #include<cstdio>
 2 #include<cstdlib>
 3 #include<ctime>
 4 #include<iostream>
 5 using namespace std;
 6 class Random{
 7 public:
 8     void init(){
 9         srand(time(0));
10     }
11     ///return number in [x,y]
12     int random_number_in(int x,int y){
13         return x+rand()%(y-x+1);
14     }
15 }myrandom;
16 class Number{
17     int cutoff[8]={10,20,50,100,500};
18     char buffer[16];
19 public:
20     string get(int n){
21         int x=myrandom.random_number_in(1,cutoff[n-1]);
22         sprintf(buffer,"%d",x);
23         return (string)buffer;
24     }
25 }mynumber;
26 class Operator{
27     char op[8]="+-*/";
28 public:
29     char get(int n){
30         if(n==5) n--;
31         int x=myrandom.random_number_in(0,n-1);
32         return op[x];
33     }
34 }myoperator;
35 class Solver{
36     string result;
37 public:
38     string solve(int n){
39         if(n<1||n>5){
40             result="error";
41             return result;
42         }
43         myrandom.init();
44         result=mynumber.get(n);
45         for(int i=0;i<n;i++){
46             result+=myoperator.get(n);
47             result+=mynumber.get(n);
48         }
49         return result;
50     }
51 }mysolver;
52 int main(){
53     int n;
54     while(cin>>n){
55         cout<<mysolver.solve(n)<<endl;
56     }
57     return 0;
58 }
View Code

相关文章:

  • 2021-09-17
  • 2022-12-23
  • 2022-02-10
  • 2022-01-01
  • 2022-01-01
  • 2022-12-23
  • 2021-10-05
猜你喜欢
  • 2022-12-23
  • 2022-02-14
  • 2021-10-17
  • 2022-01-13
  • 2022-12-23
  • 2021-11-12
相关资源
相似解决方案