纸张尺寸。

题目名字

纸张尺寸

题意

长出大的数为长,长的下一步要除以二

思路

1.一个while循环,它会在n不为0的情况下执行。
2.在循环中,如果x大于y,则将x除以2,否则将y除以2,然后将n减1。
3.循环结束后,通过比较x和y的大小,打印出较大的数和较小的数

坑点

  1. 找出长的除以二
  2. 如何找出长的,并在输出时放在第一位

算法一

while循环和for循环

实现步骤

1.一个while循环,它会在n不为0的情况下执行。
2.在循环中,如果x大于y,则将x除以2,否则将y除以2,然后将n减1。
3.循环结束后,通过比较x和y的大小,打印出较大的数和较小的数

代码
#include
int main()
{
	int x = 1189, y = 841;
	int  n=0;
	scanf("A%d", &n);
	while (n)
	{
		if (x > y)
		{
			x = x / 2;
		}
		else
		{
			y = y / 2;
		}
		n--;
	}
	if(x > y) 
	   printf("%d\n%d", x, y); 
	else{
	 printf("%d\n%d", y, x);}
	return 0;
}

总结

1.写这道题花了很长时间,首先,在编写程序时,处理输入的纸张名称,我一开始是直接字符串输入,但存在一定问题,所以改成a+数字的格式。其次是在对折纸张时,我在向下取整花了很长时间,但最后还是放弃了。另外,我还花了一些时间来测试程序,确保它能够正确地输出各种纸张的大小。这包括编写测试用例以及检查程序的输出是否符合预期。

2.在反思这个过程时,我意识到了对问题的深入理解的重要性,并通过编程来解决这些问题。我一开始运用的是字符串,并通过直接打印长和宽,但没办法运行,所以才使用了这个方法,前面的方法花费了较长时间,如果直接放弃,应该就不需要发了这么多时间,并且我当时也没有想过用while循环找出数字的尺寸。我会更加注重对问题的分析和规划,以提高解决问题的效率和准确性。

你可能感兴趣的:(算法)