求同時滿足以下條件的所有三位正整數:
①該數是某個兩位數的平方;
②該數的個位數、十位數和百位數各不相同;
③該數的個位數、十位數和百位數按降序排列。
要求將判斷某個整型數是否滿足條件①設計成函式f1:若滿足條件,則回傳1,否則帶回0;并通過參考型別引數帶回平方根(兩位數)。是否同時滿足條件②和條件③設計成函式f2。在主函式中呼叫上述函式,輸出滿足所有條件的三位數及條件①中對應的兩位數。程式的輸出如下:
169=13^2
256=16^2
289=17^2
#include<iostream>
using namespace std;
int f1(int &y){
int j;
for(j=10;j<32;j++)
if(j*j>=y)
break;
return y=((j*j)==y?j:0);
}
int f2(int n2){
int a,b,c;
a=n2%10,b=n2/10%10,c=n2/100;
if(a!=b&&b!=c&&a!=c&&a>b&&b>c)
return 1;
return 0;
}
int main()
{
int n,n2,t;
for(n=100;n<=999;n++)
{
n2=n;
if(t=f1(n)&&f2(n2))
cout<<n2<<"="<<t<<"^2"<<endl;
}
return 0;
}
uj5u.com熱心網友回復:
修改如下,供參考:#include<iostream>
using namespace std;
int f1(int y) //int f1(int &y){
{
int j;
for(j=10;j<32;j++)
if(j*j>=y)
break;
return ((j*j)==y?j:0);//return y=((j*j)==y?j:0);
}
int f2(int n2)
{
int a,b,c;
a=n2%10,b=n2/10%10,c=n2/100;
if(c<b && b<a) //if(a!=b&&b!=c&&a!=c&&a>b&&b>c)
return 1;
return 0;
}
int main()
{
int n,t;//n2;
for(n=100;n<=999;n++)
{
//n2=n;
if((t=f1(n))&&f2(n))//if(t=f1(n)&&f2(n2))
cout<<n<<"="<<t<<"^2"<<endl;
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/282430.html
標籤:C++ 語言
上一篇:必看!納秒級的C++工具!
下一篇:用C語言實作排名
