C++编程题,用while或do while循环语句

来源:百度知道 编辑:UC知道 时间:2024/05/08 12:53:23
求出1至99之间的全部同构数。同构数—它出现在平方数的右边,例如:5是25右边的数,25是625右边的数,这类数即为同构数。

#include <stdio.h>
#include <iostream>
using namespace std;
void main()
{
int i=1;
while(i<100)
{
int temp=i*i;
if(i<10)
{
if(temp%10==i)
cout<<i<<endl;
}
else
if(temp%100==i)
cout<<i<<endl;
i++;
}
}
就是分成小于10和大于10两种情况考虑。

#include <iostream>

using namespace std;

int maxnum(int n)
{
//n为k位数,返回1000000(k个零)
int k = 1;
n = n>0? n : -n;
while (n > 0)
{
n /= 10;
k *= 10;
}
return k;
}

int main()
{
int n = 99;
for (int i = 1; i <= 99 ; i++)
{
if((i*i - i)%maxnum(i)==0)cout<<i<<endl;
}
return 0;
}

哎,这种题就不要问了吧