OJ地址
Lecture (4)包含一下六道编程题,可以在上面的OJ提交。
022:角谷猜想
#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
long long n; \\ 可能会超过int范围scanf("%lld",&n);while(n!=1){
if(n%2){
printf("%lld*3+1=%lld\n",n,n*3+1);n = n*3+1;}else{
printf("%lld/2=%lld\n",n,n/2);n /= 2;}}cout<<"End"<<endl;return 0;
023:正常血压
#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
int n;cin>>n;int a,b;int total = 0;int res = 0;while(n--){
cin>>a>>b;if(a>=90&&a<=140&&b>=60&&b<=90){
res++;if(res>total)total=res;}else{
res = 0;} }cout<<total<<endl;return 0;
}
024:数字反转
#include <iostream>
#include <cmath>
using namespace std;int main(int argc, const char * argv[]) {
int n;cin>>n;int num = n;int count=0;//计算位数while(num){
num/=10;count++;}int sum = 0;int remain=0;count -= 1;while(n){
remain = n%10;sum += int(pow(10,count)*remain);count--;n /= 10;}cout<<sum<<endl;return 0;
}
025:求特殊自然数
#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
int i,j,k;int num7,num9;bool flag1=false,flag2=false;for(i=1;i<=6;i++){
for(j=0;j<=6;j++){
for(k=1;k<=6;k++){
num7 = i*49+j*7+k;num9 = k*81+j*9+i;if(num7==num9){
printf("%d\n",num7);printf("%d%d%d\n",i,j,k);printf("%d%d%d\n",k,j,i);flag1=true;break;}}if(flag1){
flag2=true;break;}}if(flag2)break;}return 0;
}
026:雇佣兵
#include <iostream>
#include <cmath>
using namespace std;int main(int argc, const char * argv[]) {
int m,n,x;cin>>m>>n>>x;while(m>=n){
x -= ceil(double(m)/n); //恢复最大体力值m时,每个能力元素可以恢复的值不超过当前战斗力(未增加之前)if(x<0)break;n += m/n;}cout<<n<<endl;return 0;
}
027:数字统计
#include <iostream>
using namespace std;int main(int argc, const char * argv[]) {
int L,R;cin>>L>>R;int i;int sum=0;for(i=L;i<=R;i++){
int n=i;while(n){
if(n%10==2)sum++;n/=10;}}cout<<sum<<endl;return 0;
}