①. 不作任何处理;
②. 在它的左边加上一个自然数,但该自然数不能超过原数首位数字的一半;
③. 加上数后,继续按此规则进行处理,直到不能再加自然数为止.
样例: 输入: 6
满足条件的数为 6 16 26 126 36 136
输出: 6 */
我的思路比较凌乱,给出的代码比较奇葩。
我给出的代码是:
#include
#include
using namespace std;
int getwei(int x) //取一共多少位
{
int i=0;
while(x!=0)
{
x=x/10;
i+=1;
}
return i;
}
int getfirst(int x) //取数字的第一位
{
while(x>=10)
{
x=x/10;
}
return x;
}
void function(int x)
{ int i=1; //因为switch有3个分支分别为1位数,2位数和3位数。为了区分所以定义了6个变量
int j=0;
int p=1;
int q=0;
int m=1;
int n=0;
int num=1; //有几个满足条件的数字
int two; //2位数的首数字
int three; //3位数的首数字
int wei=getwei(x); //1,2,3
switch(wei)
{
case 1: