循环试题二

来源:互联网 发布:妩媚航班 知乎 编辑:程序博客网 时间:2024/06/06 12:44

编写程序,找出1到99之间的同构数。同构数是这样的一组数,它出现在平方数的右边,例如:5是25右边的数,25是625右边的数,5和25都是同构数。

#include<iostream.h>void main(){    int i,a,b,tg;    for(i=1;i<99;i++)    {        tg=i*i;        if(i<=10)        {            a=tg%10;            if(a==i)            {                cout<<i<<"的同构数是:"<<tg<<endl;            }        }        if(i>10&&i<100)        {            b=tg%100;            if(b==i)            {                cout<<i<<"的同构数是:"<<tg<<endl;            }        }    }}    

注意:
在计算10以内的数的同构数,它的平方数是小于等于100的两位数,所以取余保留一位数(%10)而大于10小于100的数的同构数,它的平方取余保留平方数后两位(%100)。

当计算1到999之间的同构数时,同样的思路。

#include<iostream.h>void main(){    int i;    for(i=1;i<1000;i++)    {    if(i>=1 && i<=9)    {  //当i是1位数时      if(i == (i*i)%10) //由于*的运算优先级大于%,可以不加括号      cout<<i<<"*"<<i<<"="<<i*i<<endl;    }    else if(i>=10 && i<=99)    { //当i是2位数时      if(i == i*i%100)      cout<<i<<"*"<<i<<"="<<i*i<<endl;    }    else if(i>=100 && i<=999)    { //当i是3位数时?       if(i == i*i%1000)      cout<<i<<"*"<<i<<"="<<i*i<<endl;    }    }}

有四名专家对四款赛车进行讨论。
A说:2号赛车是最好的。
B说:4号赛车是最好的。
C说:3号赛车不是最好的。
D说:B说错了。
事实上,只有一款赛车是最好的,且只有一名专家说对了,其他3人都说错了,编程输出最好的赛车编号。
这里写图片描述

#include<iostream.h>void main(){    int bestcar;    int answer;    for(bestcar=1;bestcar<=4;bestcar++)    {        answer=(bestcar==2)+(bestcar==4)+(bestcar!=3)+(bestcar!=4);        if(answer==1)        {            cout<<"最佳赛车编号"<<bestcar<<"号赛车"<<endl;            if(bestcar==2){cout<<"A专家说对了"<<endl;}            if(bestcar==4){cout<<"B专家说对了"<<endl;}            if(bestcar!=3){cout<<"C专家说对了"<<endl;}            if(bestcar!=4){cout<<"D专家说对了"<<endl;}        }    }}