开发者社区> 哈沙给> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

白书若干题

简介: 1. P32(排列)    用1、2、3、…、9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。输出所有解。 int i,j,k; for(i=123; i> b; 15 if('+' == oper){ 16 ...
+关注继续查看

1. P32(排列) 

  用1、2、3、…、9组成3个三位数abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3。输出所有解。

int i,j,k;
for(i=123; i<=987/3; i++)
{
    j = 2*i;
    k = 3*i;
    //然后判断ijk是否满足条件(1到9不重不漏)    
} 


next_permutation等全部重拍,然后判断是否满足比例关系。 

2. P50(乘积的末三位)
  如题:输入若干个整数(可以是正数、负数或者零),输出它们的乘积的末三位。这些整数中会混入一些由大些字母组成的字符串,你的程序应当忽略他们。

  下面的我写的,没有处理正负号。

 1 #include <iostream>
 2 #include <string>
 3 #include <cctype>
 4 using namespace std;
 5 
 6 int solve(char *str)
 7 {
 8     int len = strlen(str);
 9     int ans = 0;//不是1 
10     int res = 1;
11     for(int i=0; i<len; i++)
12     {
13         if(isdigit(str[i]))
14         {
15             ans = ans*10 + (str[i] - '0');
16         }else
17         {
18             if(ans!=0)
19                 res *= ans%1000;
20             /*这个有一个数字后中间再有字母,那么res就成1了 
21             if(0==res)
22                 res = 1;
23                 */
24             ans = 0;//不是1 
25         }
26     }
27     return res%1000;
28 }
29 
30 int main()
31 {
32     int i,j,k;
33     char str[100];
34     int ans = 1;
35     while(fgets(str,100,stdin)!=NULL)//以ctrl + z结束,不是+c 
36     {
37         ans *= solve(str);
38         memset(str,0,sizeof(str));
39     }
40     cout<<ans<<endl;
41     //while(1);
42     return 0;
43 }

3. P50(计算器)
 编写程序,读入一行恰好包含一个加号、减号或乘号的表达式,输出它的值。这个运算符保证是二元运算符,且两个运算数均为不超过100的非负整数。运算数和运算符可以紧挨着,也可以用一个或多个空格、Tab隔开。行首末尾均可以有空格。

View Code
 1 //实际上可以直接用一般方法,扫描 
 2 //错误 
 3 #include <iostream>
 4 #include <cstdio>
 5 #include <cstring>
 6 #include <cctype>
 7 using namespace std;
 8 
 9 int main()
10 {
11     char str[20];
12     int a,b;
13     char ch;
14     memset(str,0,sizeof(str));
15     fgets(str,20,stdin);
16     sscanf(str,"%d%[+-*]%d",&a,&ch,&b);//不知道为什么错 
17     cout<<a<<ch<<b;
18     while(1);
19     return 0;
20     
21     
22 }
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int a, b;
 7     char oper;
 8     cin >> a;
 9     //cin.get()是保留回车在输入流队列中的.而cin是丢弃回车的.
10     do{
11         //ch=cin.get();               //或者cin.get(ch);
12         cin.get(oper);          // 这题只要灵活运用 istream &get( char &ch );
13     }while(!('+' == oper || '-' == oper  || '*' == oper) );
14     cin >> b;
15     if('+' == oper){
16         cout << a + b << endl;
17     }
18     else if('-' == oper){
19         cout << a - b << endl;
20     }
21     else{  // *
22         cout << a * b << endl;
23     }
24     return 0;
25 }

4. P50(手机键盘)

  采用二维数组或者一维数组,采用一位数组的话存储第一个字母 。

5. P67(解方程组)

  编写一个 函数solve,给定浮点数a, b, c, d, e, f,求解方程组af + by = c, dx + ey = f。

  任务1:使用assert宏,让解不唯一时异常退出。  

assert(b*d!=a*e);

  任务2:解不唯一时仍然正常返回,但调用者有办法知道解的数量(无解、唯一解、无穷多组解)。

View Code
 1 #include<iostream>
 2  #include<cassert>
 3  using namespace std;
 4  
 5  double x, y;
 6  int solve(double a, double b, double c, double d, double e, double f)
 7  {
 8      if(b*d==a*e)
 9          return 0;
10      y = (c*d-a*f)/(b*d-a*e);
11      x = (c-b*y)/a;
12      return 1;
13  }
14  int main()
15  {
16      double a, b, c, d, e, f;
17      cout << "Please input some values!" << endl;
18      while(cin >> a >> b >> c >> d >> e >> f)
19      {
20          if(!solve(a, b, c, d, e, f))
21              cout << "无穷多解!!" << endl;
22          else
23          cout << x << "  " << y << endl;
24      }
25      return 0;
26  }

6.

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
curl快速下载GitHub Repo指定commit的tar.gz
有些时候需要下载GitHub仓库的tar.gz来做一些其他操作; 这时候可能最常见的就是去GitHub上找release或者tag里面有提供tar.gz的资源; 然后点击下载~~ 但是有些场景可能这种操作就不是很方便了,比如给客户打包源码的; 快速指定git的tag或者某个commit_hash , download下来 然后对于源码做一些加密什么的,再给到客户现场构建部署~; 这时候我们就会考虑以脚本来切入,以配置文件的姿势来录入一些参数, 然后快速拿到一些我们需要的资源~ 这里举一个比较单一的场景来开展这篇文章,往下看~
156 0
HDOJ/HDU 1022 Train Problem I(模拟栈)
HDOJ/HDU 1022 Train Problem I(模拟栈)
24 0
成功解决(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
成功解决(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
130 0
梅宏院士:软件定义的未来——万物皆可互联,一切均可编程 | CNCC 2017
本文讲的是梅宏院士:软件定义的未来——万物皆可互联,一切均可编程 | CNCC 2017,10月26日上午8:30,由中国计算机学会(CCF)主办,福州市人民政府、福州大学承办,福建师范大学、福建工程学院协办的2017中国计算机大会(CNCC 2017)在福州海峡国际会展中心如期隆重召开。
1567 0
用 Flask 来写个轻博客 (14) — M(V)C_实现项目首页的模板
目录 目录 前文列表 实现所需要的视图函数 实现 homehtml 模板 代码分析 实现效果 前文列表 用 Flask 来写个轻博客 (1) — 创建项目 用 Flask 来写个轻博客 (2) — Hello World! 用 Flask 来写个轻博客...
1235 0
HDOJ/HDU 1022 Train Problem I(模拟栈)
Problem Description As the new term comes, the Ignatius Train Station is very busy nowadays.
996 0
RDIFramework.NET V2.7 Web版本升手风琴+树型目录(2级+)方法
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chinahuyong/article/details/26374473 RDIFramework.
934 0
+关注
哈沙给
渣渣一枚
1101
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载