1091 N-自守數 (15 分)—PAT (Basic Level) Practice (中文)

 2023-12-25 阅读 27 评论 0

摘要:1091 N-自守數 (15 分) 如果某個數 K 的平方乘以 N 以后,結果的末尾幾位數等于 K,那么就稱這個數為“N-自守數”。例如 392 ?2 ?? =25392,而 25392 的末尾兩位正好是 92,所以 92 是一個 3-自守數。 本題就請你編寫程序判斷一個給定的數字是否

1091 N-自守數 (15 分)
如果某個數 K 的平方乘以 N 以后,結果的末尾幾位數等于 K,那么就稱這個數為“N-自守數”。例如 3×92
?2
?? =25392,而 25392 的末尾兩位正好是 92,所以 92 是一個 3-自守數。

本題就請你編寫程序判斷一個給定的數字是否關于某個 N 是 N-自守數。

輸入格式:
輸入在第一行中給出正整數 M(≤20),隨后一行給出 M 個待檢測的、不超過 1000 的正整數。

輸出格式:
對每個需要檢測的數字,如果它是 N-自守數就在一行中輸出最小的 N 和 NK
?2
?? 的值,以一個空格隔開;否則輸出 No。注意題目保證 N<10。

輸入樣例:
3
92 5 233
輸出樣例:
3 25392
1 25
No

1091 N-自守數 (15 分)

#include<stdio.h>
#include<math.h>
int funtion(int k)
{int mix=1;while(k){mix*=10;k/=10;}return mix;
}
int main()
{int t;int n;int i,j;int x;int avg;int ge,shi,bai;int flag;int sum=0;scanf("%d",&n);for(i=0;i<n;i++){scanf("%d",&x);t = funtion(x);sum = pow(x,2);flag=0;for(j=1;j<10;j++){avg = sum*j;/*ge = avg%10;shi = avg/10%10;bai = avg/100%10;*/if((avg-x)%t==0){printf("%d %d\n",j,avg);flag=1;break;}/*else if(x==ge+shi*10){printf("%d %d\n",j,avg);flag=-1;break;}else if(x==ge+shi*10+bai*100){printf("%d %d\n",j,avg);flag=-1;break;}*/}if(flag==0)printf("No\n");//flag=1;	}
}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/194806.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息