作业-admin
1.鸡兔同笼
2.1.球弹跳高度的计算【1.5编程基础之循环控制17】
一球从某一高度h落下(单位米),每次落地后反跳回原来高度的一半,再落下。编程计算气球在第10次落地时,共经过多少米? 第10次反弹多高?
输出包含两行,第1行:到球第10次落地时,一共经过的米数。第2行:第10次弹跳的高度。
输入:
输入一个整数h,表示球的初始高度。
输出:
第1行:到球第10次落地时,一共经过的米数。
第2行:第10次弹跳的高度。
注意:结果可能是实数,结果用double类型保存。
提示:输出时不需要对精度特殊控制,用cout << ANSWER,或者printf("%g", ANSWER)即可。
样例输入:
20
样例输出:
59.9219
0.0195313
算法-admin
传不了太大了
链接:https://pan.baidu.com/s/1JwBXMWgUu9cRdBqKHccbCQ?pwd=39fb
提取码:39fb
--来自百度网盘超级会员V4的分享
参考-admin
#include<bits/stdc++.h>
using namespace std;
int main()
{
char a;
cin>>a;
if (a>='a'&&a<='z'){
cout<<"lowercase";
}
}
输入输出-admin
1、scanf("%d%d",&a,&b); cin>>a>>b;
printf(“%d%d”,a,b); cout<<a<<b;
2、printf(“%.3lf”,a); cout<<fixed<<setprecision(3); (#include #include<iomanip>)
scanf("%lf",&a); cin>>a;
3、int x=ceil(3.14) ; int x=floor(x); int x=round(3.14);
数学基础函数
4、if(x==0) if(!x)
if(x!=0) if(x)
if(a>0&& a<100) if(!(a<=0 || a>=100))
if((a<=0 || a>=100))
6、a=a+b; a+=b;
rpg-admin
#include<cstdio>
#include <iostream>
#include <cstring>
#include<queue>
/*
得到加药得到就吃, 这个*2的药就有讲究了可能需要在后面累加到一定值*2 每次比赛前三种情况 对于>p2的 直接加t2过
/<p1的肯定要加多少 就有很多种情况了 直到加到>p2就停止了就OK了 [p1,p2]里一样
每次计算w2的药数量,只要有+药,每次必须吃加药,然后分别对 t2时间和线性时间处理,记录一个k作为步数,为n时动作完成
*/
using namespace std;
struct node
{
double p1,p2,t1,t2,w1,w2;
} plants[1010];
struct bode
{
int p;
int k;
double t;
int w1,w2;
} ft,et;
int m,n;
double MAX;
void bfs()
{
queue<bode>Q;
ft.p=m;
ft.k=0;
ft.t=0;
ft.w1=0,ft.w2=0;
Q.push(ft);
while(!Q.empty())
{
ft=Q.front();
Q.pop();
if(ft.k==n)
{
if(MAX>ft.t)
MAX=ft.t;
continue;
}
if(ft.p>plants[ft.k+1].p2)//比最大的power还大,用+药
{
ft.p+=plants[ft.k+1].w1;
ft.w2+=plants[ft.k+1].w2;
ft.t+=plants[ft.k+1].t2;
ft.k+=1;
Q.push(ft);
}
else if(ft.p<plants[ft.k+1].p1)
{
et=ft;
int j=ft.w2;
for(int i=1; i<=j; i++)//尝试,看看要用几瓶*2药----------
{// |
ft.p*=2; // |
if(ft.p<plants[ft.k+1].p1) // |
continue; // |
if(ft.p>plants[ft.k+1].p2) // |
{ // k退回,继续尝试,直到执行continue。
ft.t=et.t+plants[ft.k+1].t2; // |
ft.w2=et.w2+plants[ft.k+1].w2-i;//剩下的w2药 // |
ft.p+=plants[ft.k+1].w1;//吃w1 // |
ft.k++; // |
Q.push(ft); // |
ft.k--;//-----------------------------------------
ft.p-=plants[ft.k+1].w1;
break;
}
else
{
ft.w2=et.w2+plants[ft.k+1].w2-i;
double T1=plants[ft.k+1].t1;
double T2=plants[ft.k+1].t2;
double P1=plants[ft.k+1].p1;
double P2=plants[ft.k+1].p2;
double pp=(T1-T2)*1.0/(P2-P1);
ft.t=et.t+(T1-pp*(ft.p-P1)*1.0);
ft.p+=plants[ft.k+1].w1;
ft.k++;
Q.push(ft);
ft.k--;
ft.p-=plants[ft.k+1].w1;
}
}
}
else
{
et=ft;
int j=ft.w2;
for(int i=0; i<=j; i++)//>=plants[ft.k+1].p1多了=情况
{
if(i==0) ft.p*=1;
else ft.p*=2;
if(ft.p<plants[ft.k+1].p1)
continue;
if(ft.p>plants[ft.k+1].p2)
{
ft.t=et.t+plants[ft.k+1].t2;
ft.w2=et.w2+plants[ft.k+1].w2-i;
ft.p+=plants[ft.k+1].w1;
ft.k++;
Q.push(ft);
ft.k--;
ft.p-=plants[ft.k+1].w1;
break;
}
else
{
ft.w2=et.w2+plants[ft.k+1].w2-i;
double T1=plants[ft.k+1].t1;
double T2=plants[ft.k+1].t2;
double P1=plants[ft.k+1].p1;
double P2=plants[ft.k+1].p2;
double pp=(T1-T2)*1.0/(P2-P1);
ft.t=et.t+(T1-pp*(ft.p-P1)*1.0);
ft.p+=plants[ft.k+1].w1;
ft.k++;
Q.push(ft);
ft.k--;
ft.p-=plants[ft.k+1].w1;
}
}
}
}
}
int main()
{
int i;
while(~scanf("%d%d",&n,&m),n+m)
{
for(i=1; i<=n; i++)
{
scanf("%lf%lf%lf",&plants.p1,&plants.p2,&plants.t1);
scanf("%lf%lf%lf",&plants.t2,&plants.w1,&plants.w2);
}
MAX=1999999999;
bfs();
if(MAX==1999999999)
printf("Impossible\n");
else printf("%.2lf\n",MAX);
}
return 0;
}
数制转换-admin
#include <iostream>
#include <string.h>
#include <stack>
#include <queue>
using namespace std;
int main()
{
char T[30];
cin>>T;
queue <int> Q;
int ans=0,n=0,p=0;
stack <int> S;
int len=strlen(T);
int i=0;
while(T>='0'&&T<='9')
Q.push(T[i++]-'0');
i++;
while(T>='0'&&T<='9')
n=n*10+T[i++]-'0';
i++;
while(T>='0'&&T<='9'&&i<len)
p=p*10+T[i++]-'0';
while(!Q.empty())
{
ans=ans*n+Q.front();
cout<<Q.front();
Q.pop();
}
while(ans)
{
S.push(ans%p);
ans/=p;
}
cout<<"<"<<n<<">=";
while(!S.empty())
{
cout<<S.top();
S.pop();
}
cout<<"<"<<p<<">"<<endl;
return 0;
}
乒乓球-admin
#include<bits/stdc++.h>
#define N 10000+10
using namespace std;
int a1[N],
b1[N],
a2[N],
b2[N],
cnt1, //11制时局计数器
cnt2, //21制时局计数器
len;
string str;
int main(){
string t;
while(cin>>t)str+=t;
// cout<<str<<endl;
len=str.size();
int i=0;
while(i<len&&str!='E'){
if(str=='W'){
if(a1[cnt1]+1==11&&b1[cnt1]<=9
|| a1[cnt1]+1>11&&a1[cnt1]+1-b1[cnt1]>=2)
{
a1[cnt1]++;cnt1++;
}
else a1[cnt1]++;
if(a2[cnt2]+1==21&&b2[cnt2]<=19
|| a2[cnt2]+1>21&&a2[cnt2]+1-b2[cnt2]>=2){
a2[cnt2]++;
cnt2++;
}
else a2[cnt2]++;
}
if(str=='L'){
if(b1[cnt1]+1==11&&a1[cnt1]<=9
|| b1[cnt1]+1>11&&b1[cnt1]+1-a1[cnt1]>=2){
b1[cnt1]++;cnt1++;
}
else{
b1[cnt1]++;
}
if(b2[cnt2]+1==21&&a2[cnt2]<=19
|| b2[cnt2]+1>21&&b2[cnt2]+1-a2[cnt2]>=2){
b2[cnt2]++;cnt2++;
}
else{
b2[cnt2]++;
}
}
i++;
}
for(int i=0;i<=cnt1;i++)cout<<a1<<':'<<b1<<endl;
// if(a1[cnt1]!=0||b1[cnt1]!=0)cout<<a1[cnt1]<<':'<<b1[cnt1]<<endl;
cout<<endl;
for(int i=0;i<=cnt2;i++)cout<<a2<<':'<<b2<<endl;
// if(a2[cnt2]!=0||b2[cnt2]!=0)cout<<a2[cnt2]<<':'<<b2[cnt2]<<endl;
return 0;
}
代码赏析-admin
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a;
cin>>a;
int b[a],c[a][10000];
for(int o=0;o<a;o++)
{
cin>>b[o];
for(int q=0;q<b[o];q++)
{
cin>>c[o][q];
}
}
for(int i=0;i<a;i++)
{
int A=0;
for(int e=0;e<b
;e++)
{
int B=0;
for(int f=0;f<b;f++)
{
for(int g=0;g<b;g++)
{
if(c[e]==c[f]+c[g]&&f!=g&&f!=e&&e!=g)
{
A++;
B=1;
break;
}
}
if(B==1)
{
break;
}
}
}
cout<<A<<endl;
}
}