站外题求助
  • 板块学术版
  • 楼主CSPJ_AKme
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/7/13 20:00
  • 上次更新2023/11/3 10:02:22
查看原帖
站外题求助
1030814
CSPJ_AKme楼主2023/7/13 20:00

扭扭数是像下面的数:3748,67,869,32435465768, 它们每个数每位数码的变化是:上升,下降,上升,下降,… 或者:下降,上升,下降,上升,… 而 33, 379, 12123 则不是. 特别规定一位整数也是一个扭扭数。 给定一个数字,请从头开始尽量多地连续取数码,计算最多能取多少个数码,构成扭扭数.

写了三遍,错了三遍

下面是我写的两种不同的代码

有没有大佬帮忙看看哪里错了呀

1、

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a;
	int num=0;
	cin>>a;
	if(a.size()>1)
	{
		if(a[1]>a[0])
			{
				for(int i=1;i<=a.size();i++)
				{
					if(i%2==0)
					{
						if(a[i]<a[i-1])
						{
							num++;
						}
						else
						{
							cout<<num;
							
						}
					}
					else
					{
						if(a[i]>a[i-1])
						{
							num++;
						}
						else
						{
							cout<<num;
						
						}
					}
				}
			}
			if(a[1]<a[0])
			{
				for(int i=1;i<=a.size();i++)
				{
					if(i%2==0)
					{
						if(a[i]>a[i-1])
						{
							num++;
						}
						else
						{
							cout<<num;
							
						}
					}
					else
					{
						if(a[i]<a[i-1])
						{
							num++;
						}
						else
						{
							cout<<num;
							
						}
					}
				}
			}
	}
		
	else
	{
		cout<<1;
	}
	return 0;
}

2、

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string a;
	int num=1,numa,numb;
	cin>>a;
	if(a.size()!=1)
	{
		if(a[0]<a[1])
		{
			for(int i=2;a[1]<a[i-1];i+=2,numa=i)
			for(int i=1;a[i]>a[i-1];i+=2,numb=i)
			if(fabs(1.0*numa-1.0*numb)==1)
			{
				if(numa>numb)
				{
					cout<<numa;
				}
				else
				{
					cout<<numb;
				}
			}
			else
			{
				if(numa<numb)
				{
					cout<<numa;
				}
				else
				{
					cout<<numb;
				}
			}
		}
		if(a[0]>a[1])
		{
			for(int i=2;a[1]>a[i-1];i+=2,numa=i)
			for(int i=1;a[i]<a[i-1];i+=2,numb=i)
			if(fabs(1.0*numa-1.0*numb)==1)
			{
				if(numa>numb)
				{
					cout<<numa;
				}
				else
				{
					cout<<numb;
				}
			}
			else
			{
				if(numa<numb)
				{
					cout<<numa;
				}
				else
				{
					cout<<numb;
				}
			}
		}
		else
		{
			cout<<1;
		}
	}
	else
	{
		cout<<1;
	}
	return 0;
}
2023/7/13 20:00
加载中...