《算法笔记》2.2习题
A.
#include <bits/stdc++.h>
using namespace std;
int main(){
printf("This is my first c program!");
return 0;
}
B.
#include <bits/stdc++.h>
using namespace std;
int main(){
printf("********************\nVery Good!\n********************");
return 0;
}
C.
#include <bits/stdc++.h>
using namespace std;
int main(){
int a=123,b=456;
int sum=a+b;
printf("sum=%d",sum);
return 0;
}
D.
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b;
scanf("%d%d",&a,&b);
printf("%d",a+b);
return 0;
}
E.
#include <bits/stdc++.h>
using namespace std;
int main(){
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
double r1=(-b+sqrt(b*b-4*a*c))/(2*a);
double r2=(-b-sqrt(b*b-4*a*c))/(2*a);
printf("r1=%7.2f\nr2=%7.2f",r1,r2);
return 0;
}
注意输出格式的控制:
printf(“r1=%7.2f\nr2=%7.2f”,r1,r2);
输出一共7位,不足7位右侧对齐,高位空格补齐;
小数点后2为,不足两位,0补齐;
F.
#include <bits/stdc++.h>
using namespace std;
int main(){
char a,b,c;
scanf("%c%c%c",&a,&b,&c);
printf("%c%c%c",a,b,c);
return 0;
}
《算法笔记》2.3习题
A.
#include <bits/stdc++.h>
using namespace std;
int main(){
double a,b,c;
scanf("%lf%lf%lf",&a,&b,&c);
double x=b*b-4*a*c;
if(x<0){
printf("No real roots!");
}
else{
double r1=(-b+sqrt(x))/(2*a);
double r2=(-b-sqrt(x))/(2*a);
printf("r1=%7.2f\nr2=%7.2f",r1,r2);
}
return 0;
}
B.
#include <bits/stdc++.h>
using namespace std;
int main(){
double a,b;
scanf("%lf%lf",&a,&b);
if(a<b) printf("%f %f\n",a,b);
else printf("%.2f %.2f\n",b,a);
return 0;
}
C.
#include <bits/stdc++.h>
using namespace std;
int main(){
double a[3][2],min,max=0.0;
for(int i=0;i<3;i++){
scanf("%lf",&a[i][0]);
a[i][1]=1;
}
min=a[0][0];
for(int i=0;i<3;i++){
if(a[i][0]>max) max=a[i][0];
if(a[i][0]<min) min=a[i][0];
}
printf("%.2f ",min);
for(int i=0;i<3;i++){
if(a[i][0]==min){
a[i][1]=0;
break;
}
}
for(int i=0;i<3;i++){
if(a[i][0]==max){
a[i][1]=0;
break;
}
}
for(int i=0;i<3;i++){
if(a[i][1]==1) printf("%.2f ",a[i][0]);
}
printf("%.2f\n",max);
}
D.
#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,c,max=0;
scanf("%d%d%d",&a,&b,&c);
if(a>max) max=a;
if(b>max) max=b;
if(c>max) max=c;
printf("%d\n",max);
return 0;
}
E.
#include <bits/stdc++.h>
using namespace std;
int main(){
double f,sum=0.0;
scanf("%lf",&f);
if(f<=100000) sum=0.1*f;
else if(f<=200000) sum=100000*0.1+(f-100000)*0.075;
else if(f<=400000) sum=100000*0.1+100000*0.075+(f-200000)*0.05;
else if(f<=600000) sum=100000*0.1+100000*0.075+200000*0.05+(f-400000)*0.03;
else if(f<=1000000) sum=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(f-600000)*0.015;
else sum=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(f-1000000)*0.01;
printf("%.2f\n",sum);
return 0;
}
《算法笔记》2.4习题
A.
#include <bits/stdc++.h>
using namespace std;
int main(){
int i=1,sum=0;
while(i<=100){
sum+=i;
i++;
}
printf("%d\n",sum);
return 0;
}
B.
#include <bits/stdc++.h>
using namespace std;
int main(){
int i=1,sum=0;
do{
sum+=i;
i++;
}while(i<=100);
printf("%d\n",sum);
return 0;
}
C.
#include <bits/stdc++.h>
using namespace std;
int main(){
int sum=0;
for(int i=1;i<=100;i++)
{
sum+=i;
}
printf("%d\n",sum);
return 0;
}
D.
#include <bits/stdc++.h>
using namespace std;
int main(){
int sum=0,N;
scanf("%d",&N);
for(int i=1;;i++)
{
if(i==N+1) break;
sum+=i;
}
printf("%d\n",sum);
return 0;
}
E.
#include <bits/stdc++.h>
using namespace std;
int main(){
int i,sum=0;
for(i=1;;i++)
{
sum+=i;
if(sum>1000) break;
}
printf("%d\n",i);
return 0;
}
F.
#include <bits/stdc++.h>
using namespace std;
int main(){
for(int i=1;i<=4;i++)
{
for(int j=i;j<=5*i;j+=i)
{
printf("%3d",j);
}
printf("\n");
}
return 0;
}
H.
#include <bits/stdc++.h>
using namespace std;
int Fibonacci(int n){
if(n==1) return 1;
else if(n==2) return 1;
else return Fibonacci(n-1)+Fibonacci(n-2);
}
int main(){
int n;
scanf("%d",&n);
printf("%d\n",Fibonacci(n));
return 0;
}
I.
#include <bits/stdc++.h>
using namespace std;
int son(int n){
if(n==1) return 2;
else if(n==2) return 3;
else return son(n-1)+son(n-2);
}
int father(int n){
if(n==1) return 1;
else if(n==2) return 2;
else return father(n-1)+father(n-2);
}
int main(){
double sum=0.0;
for(int i=1;i<=20;i++){
double x=son(i);
double y=father(i);
sum+=x/y;
}
printf("%.6f",sum);
return 0;
}