c语言编程 求输入一个0-99的整数,判断其是否为同构数,要求写了程序还要有中文解释其核心语句的作
#include
void main()
{
int a,b;
while(scanf("%d",&a)!=EOF)
{
b = a*a;
if( b/100 == a ||
(b%1000)/10 == a ||
b%100 == a ||
b%10 == a ||
b/10 == a )
printf("YES
");
else
printf("NO
");
}
}
运行结果如图
欢迎指正!
/*
1 5 6 25 76Press any key to continue
*/
#include int main() { int i;/*对i从1-99逐个判断若i*i%10==i或i*i%100==i输出i;*/ for(i = 1; i <= 1000; ++i) { if(i * i % 10 == i || i * i % 100 == i) printf("%d ",i); } printf("
"); return 0;}
#include "stdio.h"
int main(int argc,char *argv[]){
int n;
for(n=0;n<100;n++)
if(n*n%(n<10 ? 10 : 100)==n)//判断:n*n的值0~9除以10,10~99除以100,然后与n比较是否相等
printf("%d ",n);
printf("
");
return 0;
}
运行结果:
分析:
首先同构数的定义;一个n位正整数等于它的平方的最低n位数。
例如:
1位数5的平方等于25,而25的最后1位数就是5;
2位数25的平方等于625,而625的最后2位数就是25;
1也是同构数。
分析:
小于10的数字,是1位数,所以需要求出:它的平方数除以10的余数。因为任何整数除以10得到的余数是1位数。
例如:
自然数 平方 除以10的余数
1 1 1%10 = 1
2 4 4%10 = 4
3 9 9%10 = 9
4 16 16%10 = 6
5 5 25%10 = 5
10-99之间的数,是两位数,所以需要求出:它的平方数除以100的余数。因为任何整数除以100得到的余数是2位数。
例如:
自然数 平方 除以10的余数
10 100 100%100 = 0
11 121 121%100 = 21
12 144 144%100 = 44
......
25 625 625%100 = 25
代码如下:
#include "stdio.h"
main()
{
int n,k;
/*输入一个0-99的数*/
scanf("%d",&n);
if(n<10)
k=10; /*n<10,k为10*/
else
k=100; /*n>=10,k为100*/
if((n*n%k)==n) /* n*n%k 将n平方以后求除以k的余数*/
/*如果n的平方除以k的余数等于n,就是同构数*/
printf("是同构数
");
else
/*如果n的平方除以k的余数不等于n,就不是同构数*/
printf("不是同构数
");
}
#include <stdio.h>
void main( void)
{
int i = 0, j = 0;
while( 1) //无限循环,运行程序后可以不断地进行输入和判断
{
printf("输入一个介于0~99的整数。
"); //输入提示
scanf("%d", &i); //输入读取
j = i * i; //计算输入数i的平方
if( i < 10) //10以内的数
{
if( (j%10) == i) //判断i^2的个位数是否与i相等
{
printf("%d是同构数。
", i); //若相等则为同构数
}
else
{
pirntf("%d不是同构数。
", i); //若不相等则不为同构数
}
}
if( i >= 10) //10和10以上的数
{
if( (j%100) == i)
printf("%d是同构数。
", i);
else
printf("%d不是同构数。
", i);
}
}
}//第一次答这种题目,这个文本编辑真的是蛋疼
思路:同构数是会出现在它的平方的右边的数。具体见代码:
#include <stdio.h>
int main()
{
int n,i,m;
for(i=1;i<100;i++){//依次从1到100遍历判断
n=i*i;//求i的平方
if(i<10) m=n%10;//求平方数的后几位
else m=n%100;
if(i==m) printf("%d
",i); //判断是否是同构数
}
return 0;
}
/*
运行结果:
1
5
6
25
76
*/
你的要求怪高的。同构数是会出现在它的平方的右边的数。
#include<stdio.h>
main()
{
long i,j,k;
/* 读取数字*/
i=scanf (\"%d\",&a[i]);
j=i*i;
char name[]="是同构数";
if(j%10==i){
printf (\"%d \",i);
printf("%s\n",name);
}
}
}
裘岭卤米: #include "stdio.h" void main(){ long int num,temp,tmp=10; int i,j,total=0; printf("请输入一个整数:"); scanf("%d",&num); temp=num; while(temp!=0){ temp=num/tmp; tmp*=10; total++; } printf("整数位数为:%d\n",total); tmp/=100; temp=10; printf("整数反序为:"); for(i=1;i 全部
铁岭市18034821256: 急求!!!!用C语言编写0 - 99之间的猜数游戏 - ?
裘岭卤米: 内容:设计一个猜数字游戏,它能根据游戏规则猜数. 功能:产生原始数字:产生4个随机数,并按任意顺序排列. 游戏提示:用1A2B形式提示玩家当前猜数字的匹配情况.例如1A表示玩家猜测的数字有1个与系统产生的原始数字符合,并...
铁岭市18034821256: 编程c语言从0到9之间输入4个字符将其转换为相应的整数 如3250 - ?
裘岭卤米: #include <stdio.h> void main() { long num=0; int i,n; char str[4]; printf("请输入0-9之间的四个字符:"); gets(str); for(i=0;i<4;i++) { n=str[i]-'0';num=num*10+n; } printf("转化为整数是%ld ",num); }
铁岭市18034821256: C语言编程中怎么调用系统时间函数输出一个介于0到9的整数 - ?
裘岭卤米: 调用系统函数 可以获取当前的时间秒值 然后模除10即可 只要一个的话 不需要随机数 #include #include int main() { printf("%d\n", time(NULL)%10); return 0; }
铁岭市18034821256: 用单片机c语言写一个数码管从00到99的数字显示,要用到锁存器!!!求大神指教 - ?
裘岭卤米: /*******************************************************************************************************//*******************************************************************************************************/#include //通用89C52头文件 sbit AA=P3^4;//数码管显示用IO端...
铁岭市18034821256: 用c语言写一个0到99的数,分为奇数和偶数两组.并保存到两个数组中,将两个数组的元素都输出到屏幕. - ?
裘岭卤米: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34//用c语言写一个0到99的数,分为奇数和偶数两组.并保存到两个数组中,将两个数组的元素都输出到屏幕. #include "stdio.h" intmain(intargc, ...
铁岭市18034821256: 求,c语言程序,0到99成s形,如 0 1 2 3 4 5 6 7 8 9 19 18 17 16 15 14 13 12 11 10 20 2... - ?
裘岭卤米: 思路,规律就是隔行是一个样式的输入,int i,j,k=0; int a[10][10]; for(i=0;i<10;i++)for(j=0;j<10;j++)if(i%2==0)a[i][j]=i*10+j;elsea[i][j]=(i+1)*10-j-1;
铁岭市18034821256: C语言中 如何用数组编写一个程序 从0到99编号 并按123123报数 每次去除报数为3的数,直到只剩一个数.?
裘岭卤米: #include <stdio.h> int main() { int a[100],b[100]; //定义两个数组, int i=0; for( i=0;i<100;i++) { a[i]=i+1; b[i]=0;} int j=0,k=0; while (b[99]==0) //如果b数组的最后一个数不是0,就继续循环 { for( i=0;i<100;i++) { if (a[i]!=0) j++; if (j==3) { //如果数...
铁岭市18034821256: c语言求解 - ?
裘岭卤米: #include void main(){ int i=0,j=1,num=0; scanf("%d", switch(num) { case 1:for(i=0;i<10;i++)printf("%01d\n",i); break; case 2:for(...
铁岭市18034821256: c语言编程;产生 10 个 0 到 99 之间的随机数序列 - ?
裘岭卤米: #include <time.h>#include <stdlib.h>srand(time(0));int main(){ int a[10],i; for(i=0;i<10;i++){ a[i] = rand()%5+1; }}