解题思路:
只想到了两个思路,一个是用循环做模拟,一个是找规律.
简单模拟一下,A0->A1 是A1的短边等于A0的长边减半,A1的长边等于A0的短边。
代码如下:
#include <stdio.h> int main() { int x=1189,y=841;//x为长边,y是短边 int i,n; scanf("A%d",&n); for(i=0;i<n;i++){ int k=y;//保留上一个的短边 y=x>>1;//让短边等于上一个的长边减半 x=k;//现在的长边等于上一个的短边 } printf("%d\n%d",x,y); return 0; }
还有一个就是找规律:
0 | x/1 | y/1 |
1 | x/2 | y/1 |
2 | x/2 | y/2 |
3 | x/4 | y/2 |
4 | x/4 | y/4 |
5 | x/8 | y/4 |
6 | x/8 | y/8 |
7 | x/16 | x/8 |
8 | x/16 | x/16 |
9 | x/32 | x/16 |
很容易发现,当n为偶数的时候x和y除的相同,当n为奇数的时候x比y多除了2
而1 2 4 8 16 32 是2的0 1 2 3 4 5次方,也就是n/2次方
代码实现如下:
#include <stdio.h> int main() { int x=1189,y=841; int n; scanf("A%d",&n);//这里使用A%d就不用单独定义字符变量或者再做提取了 if(n&1){ x/=1<<(n/2+1);//奇数时多除2 y/=1<<(n/2); printf("%d\n%d",y,x);//奇数时y比x大 }else{ x/=1<<(n/2); y/=1<<(n/2); printf("%d\n%d",x,y); } return 0; }
0.0分
178 人评分
#include <bits/stdc++.h> using namespace std; int main() { string s; cin >> s; if(s=="A0"){ cout <<1189<<endl; cout <<841<<endl; } if(s=="A1"){ cout <<841<<endl; cout <<594<<endl; } if(s=="A2"){ cout <<594<<endl; cout <<420<<endl; } if(s=="A3"){ cout <<420<<endl; cout <<297<<endl; } if(s=="A4"){ cout <<297<<endl; cout <<210<<endl; } if(s=="A5"){ cout <<210<<endl; cout <<148<<endl; } if(s=="A6"){ cout <<148<<endl; cout <<105<<endl; } if(s=="A7"){ cout <<105<<endl; cout <<74<<endl; } if(s=="A8"){ 写不下了,面向结果编程
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int x = 1189, y = 841; int i, n; scanf("A%d", &n); for (i = 0;i < n;i++) { int k = y; y = x >> 1; x = k; } printf(" % d\n%d", x, y); return 0; }
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int x = 1189, y = 841; int i, n; scanf("A%d", &n); for (i = 0;i < n;i++) { int k = y; y = x >> 1; x = k; } printf(" % d\n%d", x, y); return 0; }
C语言训练-列出最简真分数序列* (C语言代码)浏览:543 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:543 |
用筛法求之N内的素数。 (C语言代码)浏览:1390 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:555 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:864 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:594 |
钟神赛车 (C语言代码)浏览:665 |
格式化数据输出 (C语言代码)浏览:882 |
C语言程序设计教程(第三版)课后习题8.1 (C语言代码)浏览:766 |
班级人数 (C语言代码)浏览:982 |
Canberra111 2024-01-29 22:31:03 |
O(1)算法复杂度,最快的
赵志凌 2024-03-13 19:50:51 |
666