fzuoop期中练习
5-1 科学计数法的值
科学计数法是一种数学专用术语。将一个数表示成 a×10的n次幂的形式,其中1≤|a|<10,n为整数,这种记数方法叫科学计数法。例如920000可以表示为9.2*10^5。现在需要对输入的字符串进行分离,自动识别该科学计数法中的a和幂次,计算其表征的具体数值并输出该值。例如,对于输入的复数字符串“9.210^5”,输出 The actual value for 9.210^5 is 920000
注意:
- 1、每组测试数据仅包括一个用于科学计数法的字符串。
- 2、输入字符串保证合法。
- 3、字符串长度不超过1000
- 4、幂次不超过200
输入示例:
9.2*10^5
输出示例:
The actual value for 9.2*10^5 is 920000
#include<iostream>
#include<sstream>
#include<string>
#include<cstdio>
using namespace std;
int main()
{
string str;
while(cin >> str)
{
string ans;
bool flag,IsSign,IsMinus;
int i;
int len = str.size();
string::size_type loc = str.find("^");
if (str[loc + 1] != '-')
{
IsSign = false;
}
else
{
IsSign = true;
}
if (!IsSign)
{
int intcnt = 0;
for (i = 0; str[i] != '*' && str[i] != '.'; i++)
{
ans += str[i];
intcnt++;
}
if (str[i] == '.')
{
i++;
}
int cnt = 0;
for (; str[i] != '*'; i++)
{
ans += str[i];
cnt++;
}
int record;
string tmp;
stringstream ss;
if (loc == string::npos)
{
record = 1;
}
else
{
for (i = loc+1; i < len; i++)
{
tmp += str[i];
}
ss << tmp;
ss >> record;
}
if (record < cnt)
{
flag = false;
}
else
{
flag = true;
}
int len1 = ans.size();
if (flag)
{
cout << "The actual value for " << str << " is " << ans;
for (i = record - cnt; i > 0; i--)
{
cout << "0";
}
cout << endl;
}
else
{
cout << "The actual value for " << str << " is ";
for (i = 0; i < intcnt + record; i++)
{
cout << ans[i];
}
cout << ".";
for (i = intcnt + record; i < len1; i++)
{
cout << ans[i];
}
cout << endl;
}
}
else
{
if (str[0] == '-')
{
str.erase(0,1);
IsMinus = true;
}
else
{
IsMinus = false;
}
len = str.size();
int intcnt = 0;
for (i = 0; str[i] != '*' && str[i] != '.'; i++)
{
ans += str[i];
intcnt++;
}
if (str[i] == '.')
{
i++;
}
for (; str[i] != '*'; i++)
{
ans += str[i];
}
int record;
string tmp;
stringstream ss;
if (loc == string::npos)
{
record = 1;
}
else
{
if (IsMinus)
{
for (i = loc + 1; i < len; i++)
{
tmp += str[i];
}
}
else
{
for (i = loc + 2;i < len;i++)
{
tmp += str[i];
}
}
ss << tmp;
ss >> record;
}
cout << "The actual value for " << str << " is ";
if (IsMinus)
{
cout << "-";
}
cout << "0.";
for (i = 0; i < record - intcnt; i++)
{
cout << "0";
}
cout << ans << endl;
}
}
return 0;
}
5-3 不能用循环是一件多么悲伤的事
下面是一个算到10的加法表:
0 + 0 = 0 0 + 1 = 1 0 + 2 = 2 0 + 3 = 3 0 + 4 = 4 0 + 5 = 5 0 + 6 = 6 0 + 7 = 7 0 + 8 = 8 0 + 9 = 9 0 +10 = 10
1 + 0 = 1 1 + 1 = 2 1 + 2 = 3 1 + 3 = 4 1 + 4 = 5 1 + 5 = 6 1 + 6 = 7 1 + 7 = 8 1 + 8 = 9 1 + 9 = 10
2 + 0 = 2 2 + 1 = 3 2 + 2 = 4 2 + 3 = 5 2 + 4 = 6 2 + 5 = 7 2 + 6 = 8 2 + 7 = 9 2 + 8 = 10
3 + 0 = 3 3 + 1 = 4 3 + 2 = 5 3 + 3 = 6 3 + 4 = 7 3 + 5 = 8 3 + 6 = 9 3 + 7 = 10
4 + 0 = 4 4 + 1 = 5 4 + 2 = 6 4 + 3 = 7 4 + 4 = 8 4 + 5 = 9 4 + 6 = 10
5 + 0 = 5 5 + 1 = 6 5 + 2 = 7 5 + 3 = 8 5 + 4 = 9 5 + 5 = 10
6 + 0 = 6 6 + 1 = 7 6 + 2 = 8 6 + 3 = 9 6 + 4 = 10
7 + 0 = 7 7 + 1 = 8 7 + 2 = 9 7 + 3 = 10
8 + 0 = 8 8 + 1 = 9 8 + 2 = 10
9 + 0 = 9 9 + 1 = 10
10+ 0 = 10
本题目要求读入1个整数,输出加法表,每一行都算到结果为输入的整数为止。不允许使用循环,不允许使用循环,不允许使用循环。重要的事情说三遍(括弧笑)
输入格式:
在一行中给出一个正整数N(0≤N≤99)。
输出格式:
按照示例的格式输出左上三角N+M的表,行列都从0开始。
加号左边数字占2位、左对齐;
加号右边数字占2位、右对齐;
结果数字占2位,左对齐。
等号两边各一个空格。
两个式子之间加一个空格(行末的空格不用去掉)
输入样例:
5
输出样例:
0 + 0 = 0 0 + 1 = 1 0 + 2 = 2 0 + 3 = 3 0 + 4 = 4 0 + 5 = 5
1 + 0 = 1 1 + 1 = 2 1 + 2 = 3 1 + 3 = 4 1 + 4 = 5
2 + 0 = 2 2 + 1 = 3 2 + 2 = 4 2 + 3 = 5
3 + 0 = 3 3 + 1 = 4 3 + 2 = 5
4 + 0 = 4 4 + 1 = 5
5 + 0 = 5
这道题虽然AC了,总感觉递归的姿势不正确= =
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cstdlib>
using namespace std;
int N;
void func(int num,int cnt)
{
if (num <= N)
{
if (num + cnt <= N)
{
printf("%-2d+%2d = %-2d ",num,cnt,num+cnt);
//cout << setiosflags(ios::left) << setw(2) << num << " + " << setiosflags(ios::right) << setw(2) << cnt << " = " << setiosflags(ios::left) << setw(2) << num+cnt << " ";
func(num,cnt+1);
}
cout << endl;
}
if (num > N)
exit(0);
func(num+1,0);
}
int main()
{
scanf("%d",&N);
func(0,0);
return 0;
}
fzuoop期中练习的更多相关文章
- 《Linux及安全》期中总结&《Linux内核分析》期终总结
[5216 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK NINE ...
- 20135202闫佳歆--week 9 期中总结
期中总结 前半学期的主要学习内容是学习mooc课程<Linux内核分析>以及课本<Linux内核设计与实现>. 所涉及知识点总结如下: 1. Linux内核启动的过程--以Me ...
- JavaScript去除日期中的“-”
JavaScript去除日期中的"-" 1.说明 经常会出现这样的情况,页面的日期格式是:YYYY-MM-DD,而数据库中的日期格式是:YYYYMMDD,两者之间需要转换一下,方能 ...
- Linux运维期中架构(50台集群)
一.期中架构 二.期中架构-前端部分 三.第三阶段作业-期中架构
- 《Linux内核分析》期终总结&《Linux及安全》期中总结
<Linux内核分析>期终总结&<Linux及安全>期中总结 [李行之 原创作品 转载请注明出处 <Linux内核分析>MOOC课程http://mooc. ...
- Linux内核分析——期中总结
期中总结 一.MOOC课程 (一)计算机是如何工作的 1.冯诺依曼体系结构的核心思想是存储程序计算机. 2.CPU在实际取指令时根据cs:eip来准确定位一个指令. 3.寄存器模式,以%开头的寄存器标 ...
- Linux内核设计期中总结
Linux内核设计期中总结 ● 知识点 一.计算机是如何工作的 计算机是按照冯·诺依曼存储程序的原理. 在执行程序时须先将要执行的相关程序和数据放入内存储器中,在执行程序时CPU根据当前程序指针寄存器 ...
- 《Linux内核分析》 期中总结
Linux内核分析 期中总结 20135307 张嘉琪 一.Linux内核分析课程总结 学习笔记汇总 第一节 计算机是如何工作的 第二节 操作系统是如何工作的 第三节 构造一个简单的Linux系统Me ...
- Linux内核期中
Linux内核期中总结 一.计算机是如何工作的 个人理解:计算机就是通过和用户进行交互,执行用户的指令,这些指令存放在内存中,通过寄存器存储,堆栈变化,来一步步顺序执行. 二.存储程序计算机工作模型 ...
随机推荐
- FineUI v4.0.2 (beta) 发布了!
FineUI v4.0.2 (beta) 已经于 2013-12-15 发布! ================================== 关于FineUI基于 ExtJS 的开源 ASP. ...
- lecture9-提高模型泛化能力的方法
HInton第9课,这节课没有放论文进去.....如有不对之处还望指正.话说hinton的课果然信息量够大.推荐认真看PRML<Pattern Recognition and Machine L ...
- foreach 和 for 循环的区别
foreach 依赖 IEnumerable. 第一次 var a in GetList() 时 调用 GetEnumerator 返回第一个对象 并 赋给a, 以后每次再执行 var a in Ge ...
- java文件cmd运行出现中文乱码
今天刚开始学java,使用cmd命令执行java文件的时候,发现中文打出来是一串乱码. 于是就百度了一下,发现一个行之有效的方法. 首先使用命令:javac -encoding utf-8 Hello ...
- getopt
头文件 #include<unistd.h> 定义函数 int getopt(int argc,char * const argv[ ],const char * optstring); ...
- 屠龙之路_向恶龙Alpha进发_FirstDay
听说山的那边海的那边,出现了一头名为Alpha的恶龙,此龙无恶不作,还掠走了国王那漂酿的公主.少年很是气愤,大吼:"放开那女孩!!!",于是找到了志同道合的六位勇士,一起组成了屠龙 ...
- 访问修饰符(public,private,protected,internal,sealed,abstract)
为了控件C#中的对象的访问权限,定义对象时可以在前面添加修饰符. 修饰符有五种:private(私有的),protected(受保护的),internal(程序集内部的),public(公开的),以及 ...
- oracle修改表字段
--添加字段 )); -- 修改字段的长度- ));
- fatal: Not a valid object name: 'master'.
fatal: Not a valid object name: 'master'. the answer is : That is again correct behaviour. Until you ...
- 【BZOJ 4598】【SDOI 2016 Round2 Day1 T3】模式字符串
2016-05-21因为BZOJ上“ 数据文件太过巨大,仅提供前三组数据测试.”所以我考场上写的60分的点分治交上去也A了. 我的这个点分治的时间复杂度是$O(Tnmlogn)$的,听题解时没听懂$O ...