目录
引言
7-1 求π的近似值 (15 分)
7-2 特立独行的幸福 (25 分)
7-3 函数的嵌套调用 (10 分)
7-4 母牛问题 (10 分)
篇尾
引言
填空题链接,看评论
7-1 求π的近似值 (15 分)
#include <stdio.h>
int main(){
double pi=0,t=1,n=0;
scanf("%lf",&n);
for(int i=1,k=1;t>n;i+=2){
t=1.0/i;
pi+=4*t*k;
k=-k;
}
printf("pi = %lf\n",pi);
return 0;
}
?注意,要求定义和调用函数funpi(e)求π的近似值,稍稍改一下就好了
#include <stdio.h>
void funpi(double n){
double t=1,pi=0;
for(int i=1,k=1;t>n;i+=2){
t=1.0/i;
pi+=4*t*k;
k=-k;
}
printf("pi = %lf\n",pi);
return;
}
int main(){
double n=0;
scanf("%lf",&n);
funpi(n);
return 0;
}
7-2 特立独行的幸福 (25 分)
#include<bits/stdc++.h>
using namespace std;
inline bool isPrime(int & x) {
for(int i=2;i*i<=x;i++) {
if(x%i==0)return false;
}
return x>1;
}
inline int nxt(int x) {
int ans=0;
while(x)ans+=(x%10)*(x%10),x/=10;
return ans;
}
bool flag, spec[10005];
inline int get(int x) {
map<int,bool>vst;
int ans=0,mul=isPrime(x)?2:1;
for(;x!=1;++ans) {
if(vst[x]==true)return 0;
vst[x]=true;
spec[x=nxt(x)]=false;
}
return ans*mul;
}
typedef pair<int, int> P;
int main(){
#ifdef MyTest
freopen("Sakura.txt", "r", stdin);
#endif
int a, b;
cin>>a>>b;
vector<P>res;
for(int i=a;i<=b;i++)spec[i]=true;
for(int i=a;i<=b;i++)res.push_back(P{i, get(i)});
for(P&p:res)if(p.second && spec[p.first]) {
cout<<p.first<<' '<<p.second<<'\n';
flag=true;
}
if(!flag)cout<<"SAD";
return 0;
}
c++写的,记得改格式
7-3 函数的嵌套调用 (10 分)
#include<stdio.h>
int max(int a,int b,int c){
return (a>b?a:b)>c?(a>b?a:b):c;
}
int min(int a,int b,int c){
return (a<b?a:b)<c?(a<b?a:b):c;
}
int sum(int a,int b,int c){
return max(a,b,c)+min(a,b,c);
}
int main(){
int a=0,b=0,c=0;
scanf("%d %d %d ",&a,&b,&c);
printf("Max+Min=%d",sum(a,b,c));
return 0;
}
7-4 母牛问题 (10 分)
#include<stdio.h>
#include<math.h>
int f(int n){
return (n==1||n==2||n==3)?1:f(n-1)+f(n-3);
}
int main(){
int n=0;
while(scanf("%d",&n)!=EOF){
printf("%d\n",f(n));
}
return 0;
}
明白题目意思,就会发现,和斐波那契数列一样,只是一个简单的递归
/*
1 1
2 1
3 1
4 2
5 3
6 4
7 6
8 9
9 13
10 19
11 28
*/
f(n+4)==f(n)+f(n+3) <=>f (n)==f(n-1)+f(n-3)
篇尾
制裁我的,不是困意,是笔记本没电了......
|