浙江工业大学c++资料钱能教授版.docx

上传人:b****7 文档编号:15307506 上传时间:2023-07-03 格式:DOCX 页数:21 大小:20.37KB
下载 相关 举报
浙江工业大学c++资料钱能教授版.docx_第1页
第1页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第2页
第2页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第3页
第3页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第4页
第4页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第5页
第5页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第6页
第6页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第7页
第7页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第8页
第8页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第9页
第9页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第10页
第10页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第11页
第11页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第12页
第12页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第13页
第13页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第14页
第14页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第15页
第15页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第16页
第16页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第17页
第17页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第18页
第18页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第19页
第19页 / 共21页
浙江工业大学c++资料钱能教授版.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

浙江工业大学c++资料钱能教授版.docx

《浙江工业大学c++资料钱能教授版.docx》由会员分享,可在线阅读,更多相关《浙江工业大学c++资料钱能教授版.docx(21页珍藏版)》请在冰点文库上搜索。

浙江工业大学c++资料钱能教授版.docx

浙江工业大学c++资料钱能教授版

OPS欢迎您

Output:

程序应输出“WelcometotheOPS.”字串,并以回车结束。

您也可以试试,如果不输出回车,其代码能否通过提交系统的测试。

SampleInput:

SampleOutput:

WelcometotheOPS.

代码:

#include

usingnamespacestd;

intmain()

{

cout<<"WelcometotheOPS."<<"\n";

}

补充:

Ctrl+c表示关闭正在运行的程序框;

Ctrl+z表示结束exe运行文框(需要回车确认,也叫做强制输出);

如果开始没有输出框出现,可以输入:

Intn;cin>>n;进行初始化(临时激活窗口);

 

一个@字符矩形

Description:

根据读入的n值,输出以@为填充字符,宽为20,高为n的字符矩形。

Input:

输入数据只有一个正整数n(1≤n≤50)。

Output:

输出以@为填充字符,宽为20,高为n的字符矩形。

显然为了结束每行字符,在输出20个@字符后,应输出一个回车,最后一行也必须与前面一样输出回车,否则提交系统不会予以认可。

SampleInput:

5

SampleOutput:

@@@@@@@@@@@@@@@@@@@@

@@@@@@@@@@@@@@@@@@@@

@@@@@@@@@@@@@@@@@@@@

@@@@@@@@@@@@@@@@@@@@

@@@@@@@@@@@@@@@@@@@@

代码:

#include

usingnamespacestd;

intmain()

{intn;

cin>>n;

for(inti=1;i<=n;i++)

cout<<"@@@@@@@@@@@@@@@@@@@@"<<"\n";//同行输出。

}

补充:

①Cout<<’x’与cout<<”x”在表示单字符时相同,也就是说cout<<”h”与cout<<’h’相同。

特殊的,\n也表示一个字符。

②但是inta=3;cout<

Intb=’3’;cout<

 

一个#字符正方形

Description:

根据读入的n值,输出以#为填充字符,边长为n的字符正方形。

Input:

输入数据只有一个正整数n(1≤n≤50)。

Output:

输出以#为填充字符,边长为n的字符正方形。

显然为了结束每行字符,在行末应输出回车,最后一行也必须与前面一样输出回车,否则提交系统不会予以认可。

SampleInput:

5

SampleOutput:

#####

#####

#####

#####

#####

本题与上题类似。

代码:

#include

usingnamespacestd;

intmain()

{intn;

cin>>n;

for(inti=1;i<=n;i++)

{for(intj=1;j<=n;j++)

{

cout<<"#";

}

cout<<"\n";

}

}

补充:

inti=5;a=a++;一次循环后,a=5,i=6.也就是先运行a=i,再运行i++;

Intb=5;++b;一次循环以后,b=6,j=5.

但是当++i,i++单独使用的时候,他们的效果是一样的。

 

一个字符三角形

Description:

根据读入的字符值,输出以该字符为填充字符的定长等腰三角形。

Input:

输入数据只有一个字符值c(’A’≤c≤’Z’)。

Output:

输出以c为填充字符,高为7,底边长为13的等腰三角形。

每行结束时应回车。

SampleInput:

A

SampleOutput:

A

AAA

AAAAA

AAAAAAA

AAAAAAAAA

AAAAAAAAAAA

AAAAAAAAAAAAA

代码:

#include

usingnamespacestd;

intmain()

{chara;

cin>>a;

for(inti=1;i<=7;i++)

{for(intj=1;j<=7-i;++j)输出1-6个空格

cout<<"";

for(intk=1;k<=2*i-1;k++)输出1-13个字符

cout<

cout<<"\n";}

}简单的有:

#include

#include

usingnamespacestd;

intmain()

{chara;

cin>>a;

for(inti=1;i<=7;i++)

cout<

 

A-B

Description:

每读入两个整数,输出其差。

Input:

输入数据含有不超过50个的整数对,每个整数和每对整数的运算结果都不会超过±2^31。

Output:

对于每次读入的一对整数,输出前者减去后者的差。

每个结果应以回车结束。

SampleInput:

1357

SampleOutput:

-2

-2

代码:

#include

usingnamespacestd;

intmain()

{

for(inta,b;cin>>a>>b;)

cout<

}

补充:

1整形:

int

2浮点型:

flout;

3字型:

char/string,char(32)表示空格。

4enum型:

从总集中选取有限的个数作为常量,可以进行四则运算,但不可以超过取数的范围。

如:

enumdate{mon,tue,wed,thu,fri,sat,sun}如果没有给定具体数,以上七个数分别为0-6,DATE为一函数,其余七个数为常量,

再运行dated;d=mon;if(d==wed).......

5.bool型(0/1型)。

6.intx=3,;与constintx=8不同,后者定义的x为不变的常量。

 

字符三角形

Description:

根据字符值以及三角形的高,输出以该字符为填充字符的等腰三角形。

Input:

输入数据含有不超过50组的数据,每组包括一个可见字符c(33≤c≤126)和一个整数n(1≤n≤30)。

Output:

输出以c为填充字符,高为n的等腰三角形,每个三角形时都应另起一行。

SampleInput:

A5B3

SampleOutput:

A

AAA

AAAAA

AAAAAAA

AAAAAAAAA

B

BBB

BBBBB

代码:

#include

#include

usingnamespacestd;

intmain()

{charc;

for(intn;cin>>c>>n;)

{for(inti=1;i<=n;i++)

{for(intj=1;j<=n-i;j++)

cout<<"";

for(intk=1;k<=2*i-1;k++)

cout<

cout<<"\n";}}}

优化的办法:

#include

#include

usingnamespacestd;

intmain()

{stringc;//此处也可以用charc;

for(intn;cin>>c>>n;)

{for(inti=1;i<=n;i++)

cout<

//那这里就是string(2*i-1,c)了

}}

字符棱形

Description:

根据读入的字符和边长,勾画字符棱形。

Input:

输入数据含有不超过50组的数据,每组数据包括一个可见字符c和一个整数n(1≤n≤30)。

Output:

输出以c为填充字符,边长为n的棱形,勾画每个棱形时都应另起一行。

SampleInput:

A5

SampleOutput:

A

AAA

AAAAA

AAAAAAA

AAAAAAAAA

AAAAAAA

AAAAA

AAA

A

代码:

#include

#include

usingnamespacestd;

intmain()

{charc;for(intn;cin>>c>>n;)

{

for(inti=1;i<=n;i++)

cout<

for(inti=n-1;i>=1;i--)

cout<

}

}优化:

#include

#include//为abs()提供服务

#include

usingnamespacestd;

intmain()

{charc;

for(intn;cin>>c>>n;)

{for(inti=1-n;i<=n-1;i++)

cout<

}//也就是从n-1到0再到n-1个空格,也就是从1到2*n-1再到1

//这里面的2*n-1-2*abs(i)的理解很关键,最多一行是2*n-1类推

}

交替字符倒三角形

Description:

根据读入的高,勾画ST字符交替的倒三角形。

Input:

输入数据含有不超过50个正整数n(1≤n≤30)。

Output:

输出以n为高的ST字符交替的倒三角形,勾画每个三角形时都应另起一行。

SampleInput:

10

SampleOutput:

STSTSTSTSTSTSTSTSTS

STSTSTSTSTSTSTSTS

STSTSTSTSTSTSTS

STSTSTSTSTSTS

STSTSTSTSTS

STSTSTSTS

STSTSTS

STSTS

STS

S

代码:

#include

#include

usingnamespacestd;

intmain()

{for(intn;cin>>n;)//输入行数

{for(inti=1;i<=n;++i)//确定总的循环行数

{cout<

for(intj=1;j<=n-i;++j)//输出的TS的个数

cout<<"TS";

cout<<"\n";//输完一行再换行

}}}优化#include

#include

usingnamespacestd;

intmain()

{for(intn;cin>>n;)//输入行数

{for(inti=1;i<=n;++i)//确定总的循环行数

{cout<

for(intj=1;j<=(n-i)*2+1;++j)//每行循环(n-i)*2-1次

cout<<(j%2?

"S":

"T");//奇数位输出S,偶数位输出T

cout<<"\n";//输完一行再换行

}}}

格式阵列一

Input:

输入数据含有不超过50个正整数n(1≤n≤25)。

Output:

输出以n为阶的格式阵列。

每行开始先打印行号,行号为两个字符宽,右对齐,行号与元素之间空2格。

每个元素占3个字符宽。

右对齐,元素值起始位置为0,以后每向右前进一个,元素值便取前一元素加1除n的余数,每进到下一行,起始的元素值为上一元素加1除以n的余数,依此类推。

每个格式阵列之间应有一空行,最前与最后不应有空行。

样本输出中,□表示空格。

SampleInput:

6SampleOutput:

□1□□□□0□□1□□2□□3□□4□□5

□2□□□□1□□2□□3□□4□□5□□0

□3□□□□2□□3□□4□□5□□0□□1

□4□□□□3□□4□□5□□0□□1□□2

□5□□□□4□□5□□0□□1□□2□□3

□6□□□□5□□0□□1□□2□□3□□4

代码:

#include

#include//为下文setw()函数做准备

usingnamespacestd;

intmain()

{for(intn,m=0;cin>>n;)

{cout<<(m++?

"\n":

"");//保证第一行与输入行分开

for(inti=1;i<=n;++i)

{cout<

(2)<

inta=i;//为了保护i

for(intj=1;j<=n;++j,a++)

cout<

cout<<"\n";//一行完成换行咯~

}}}

格式阵列二

Description:

根据读入的阶,按样例打印格式阵列。

Input:

输入数据含有不超过50个正整数n(1≤n≤25)。

Output:

输出以n为阶的格式阵列。

每个元素由一对括号和括号中的整数对组成,元素前应空一格。

每个元素的整数对正是该元素的行号与列号。

每个格式阵列之间应有一空行,最前与最后不应有空行。

样本输出中,□表示空格。

SampleInput:

6SampleOutput:

□(1,1)□(1,2)□(1,3)□(1,4)□(1,5)□(1,6)

□(2,1)□(2,2)□(2,3)□(2,4)□(2,5)□(2,6)

□(3,1)□(3,2)□(3,3)□(3,4)□(3,5)□(3,6)

□(4,1)□(4,2)□(4,3)□(4,4)□(4,5)□(4,6)

□(5,1)□(5,2)□(5,3)□(5,4)□(5,5)□(5,6)

□(6,1)□(6,2)□(6,3)□(6,4)□(6,5)□(6,6)

代码:

#include

usingnamespacestd;

intmain()

{for(intn,m=0;cin>>n;)

{cout<<(m++?

"\n":

"");//输入数字行与输出行换行

//等价于for(intn,m=0;cin>>n;m++)

//{if(m!

=0)cout<<"\n";}也就是第一次换行

for(inti=1;i<=n;++i)//换行n次,并进行保值i

{for(intj=1;j<=n;++j)//每列n个数,用j保值

cout<<"("<

cout<<"\n";

}}}

小结:

1.strings=”ab”;stringt=”xy”;s=s+t;cout<

2.if(a>1)cout<1)?

Cout<

cout<

等价于cout<<((a>1)?

X:

y);

3.%取余,/取商

4.Intn,m时,逗号仅表示同一步的先后顺序。

1!

到n!

的和

Description:

求1!

+2!

+3!

+4!

+...+n!

的结果。

Input:

输入数据含有不多于50个的正整数n(1≤n≤12)。

Output:

对于每个n,输出计算结果。

每个计算结果应占独立一行。

SampleInput:

36

SampleOutput:

9

873

代码:

#include

usingnamespacestd;

intmain()

{intt=1;

inta[12];//因为是不大于12的,所以开12个盒子

for(inti=1;i<=12;i++)

{t*=i;

a[i]=t;}//计算每一个阶乘的值(1-12)

for(intn;cin>>n;)

{intsum=0;

for(inti=1;i<=n;i++)

sum+=a[i];//累加前面算出的值,实际上a[0]没有使用

cout<

}}优化

#include

usingnamespacestd;

intmain()

{inta[12]={1};//开13个数组,注意0是不用的!

,给定a[0]=1;其余是0

for(inti=1,t=2;i<=12;t*=++i+1)//也就是t=t*(i+1);i++;

{a[i]=t+a[i-1];}//计算阶乘和

for(intn;cin>>n;)

cout<

}再次优化

#include

usingnamespacestd;

intmain()

{for(intn;cin>>n;)

{intsum=0;

for(inti=1,t=1;i<=n;++i)

{t=t*i;

sum+=t;}//直接判断n的值,每一个n都算一遍

cout<

等比数列

Description:

已知q与n,求等比数列之和:

1+q+q2+q3+q4+…+qn

Input:

输入数据含有不多于50对的数据,每对数据含有一个整数n(1≤n≤20),一个小数q(0

Output:

对于每组数据n和q,计算其等比数列的和,精确到小数点后3位,每个计算结果应占单独一行。

SampleInput:

60.351.3

SampleOutput

1.428

12.756

代码:

#include

#include//为调用pow函数准备

usingnamespacestd;

intmain()

{

doubleq;//保证q的双精度小数位

cout.precision(3);//满足小数点保留三位

for(intn;cin>>n>>q;)

{doublesum;//前后必须相同保证双精度

if(q==1)sum=1+n;//q=1时,那么就等于相加,注意第一位是一

elsesum=(pow(q,n+1)-1)/(q-1);//计算平均值,也就是用等比数列求和公式

//(pow(q,n+1)-1)表示q的n+1次-1;Sn=(1-q)^n/(1-q)。

注意n+1是由于第一项是1

cout<

}

}

优化

#include

#include//为调用pow函数准备

usingnamespacestd;

intmain()

{doubleq;//保证q的双精度小数位

cout.precision(3);//满足小数点保留三位

for(intn;cin>>n>>q;)

{doublesum=1.0;//前后必须相同保证双精度

for(doublet=q;n--;t*=q)//也就是计算q的n次

sum+=t;//求和

cout<

}}

 

菲波那契数

Description:

菲波那契(fibonacci)数(简称菲氏数)定义为:

f(0)=0;

f

(1)=1;

f(n)=f(n-1)+f(n-2).n>1的整数

如果写出菲氏数列,则应该是:

0112358132134...

如果求其第6项,则应为8。

求第n项菲氏数。

Input:

输入数据含有不多于50个的正整数n(0≤n≤46)。

Output:

对于每个n,计算其第n项菲氏数,每个结果应占单独一行。

SampleInput:

610

SampleOutput:

8

55

代码:

#include

usingnamespacestd;

intmain()

{inta[47]={0,1};//给定0-46个盒子,并默认a[0]=0,a[1]=1;

for(inti=2;i<47;++i)

a[i]=a[i-1]+a[i-2];//进行运算,i=1,2时的值已经赋值

for(intn;cin>>n;)

cout<

}

 

最小公倍数

Description:

求两个正整数的最小公倍数。

Input:

输入数据含有不多于50对的数据,每对数据由两个正整数(0

Output:

对于每组数据n1和n1,计算最小公倍数,每个计算结果应占单独一行。

SampleInput:

651812

SampleOutput:

30

36

代码:

#include

usingnamespacestd;

intgcb(inta,intb)

{if(a%b==0)returnb;returngcb(b,a%b);}//这里在寻找他们的公约数

intmain()

{

for(intn1,n2;cin>>n1>>n2;)

cout<

}//比如5.6,则5/(5.6的最大公约数1)*6

 

最大公约数

Description:

求两个正整数的最大公约数。

Input:

输入数据含有不多于50对的数据,每对数据由两个正整数(0

Output:

对于每组数据n1和n1,计算最大公约数,每个计算结果应占单独一行。

SampleInput:

651812

SampleOutput:

1

6

代码:

//本题利用辗转相除法

#include

usingnamespacestd;

intgcb(inta,intb);

intmain()

{for(intn1,n2;cin>>n1>>n2;)

cout<

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 军事政治

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2