第二次作业

1.求n的阶乘
n的阶乘=n * n-1 * n-2 * n -3…* 2 * 1

1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
using namespace std;
int main(){
int n,s=1;
cin>>n;
for(int i=1;i<=n;i++){
s*=i;
}
cout<<s<<endl;
return 0;
}

14.从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
using namespace std;
int a[10];
int z,f,l;
int main(){
for(int i=0;i<10;i++){
cin>>a[i];
}
for(int i=0;i<10;i++){
if(a[i]>0){
z++;
}else if(a[i]<0){
f++;
}else {
l++;
}
}
cout<<z<<" "<<f<<" "<<l<<endl;
return 0;
}

求1~1000之间能被13整除的最大的数

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<iostream>
using namespace std;
int main(){
int t;
for(int i=1;i<100;i++){
if(i*13>1000){
t=i-1;
break;
}
}
cout<<t<<endl;
return 0;
}

“水仙花数”是指一一个三位数,其各位数的立方之和正好等于该数本身,例如,153=1^3+5^3+3^3 ,请输出所有的水仙花数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
int main(){
int a,b,c;
for(int i=100;i<1000;i++){
a=i/100;//百位
b=i/10%10;//十位
c=i%10;//个位
if(i==a*a*a+b*b*b+c*c*c){
cout<<i<<" ";
}
}
return 0;
}

从键盘输入整数n,输出1+3+5+7+…+n,前n项的和。

1
2
3
4
5
6
7
8
9
10
11
12
#include<iostream>
using namespace std;
int main(){
int n,s=0;
cin>>n;
for(int i=1;i<=n;i+=2){
s+=i;
}
cout<<s;
return 0;
}

编写程序,求满足下列条件的最大的n:
1^2+2^2+3^2+…..+n^2< 1000

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include<iostream>
using namespace std;
int main(){
int s=0,t;
for(int i=1;i<32;i++){
if(s<1000){
s+=i*i;
}else{
t=i-2;
break;
}
}
cout<<t<<endl;
return 0;
}

#include<iostream>
using namespace std;
int main(){
int s=0,t;
for(int i=1;i<32;i++){
s+=i*i;
if(s>1000){
t=i-1;
break;
}
}
cout<<t<<endl;
return 0;
}

输入一批非0的数,直到输入0为止,计算其中奇数的平均值和偶数的乘积

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
using namespace std;
#define N 100010
int main(){
int a[N];
int i=0,j=0,t=0,num,pj=0,ji=1;
while(cin>>a[i]&&a[i]!=0){
i++;
}
num=i-1;
while(j<=num){
if(a[j]%2){
pj+=a[j];
t++;
}else{
ji*=a[j];
}
j++;
}
cout<<pj*(1.0)/t*(1.0)<<" "<<ji<<endl;
return 0;
}