用c怎么写
3) 编写程序,打印出所有的“abcd=(ab+cd)2”性质的数,例如3025=(30+25)2。【要求】
(1)打印的数字占8个字符宽,每行显示3个
(2)使用for语句实现
4) 从键盘输入一个数n,打印高度为2*n-1行的菱形,例如:n=4时,打印图形如下:
【要求】
(1)打印的高度需要通过键盘输入的n控制
(2)使用for语句 本帖最后由 傻眼貓咪 于 2021-10-27 22:16 编辑
#include <stdio.h>
#include <stdbool.h>
#include <math.h>
bool solution(int n){
int a = n/1000;
int b = (n%1000)/100;
int x = (n%100)/10;
int y = n%10;
return n == pow((a*10+b)+(x*10+y), 2);
}
int main(){
for(int i = 1000; i < 10000; i++) if(solution(i)) printf("%d\n", i);
return 0;
}2025
3025
9801
#include <stdio.h>
void print(int n){
n = 2*n-1;
for(int i = 0; i < (n>>1); i++){
for(int j = (n>>1)-i-1; j >= 0; j--) printf(" ");
for(int j = 0; j < (i<<1)+1; j ++) printf("*");
printf("\n");
}
for(int i = 0; i < n; i++) printf("*");
printf("\n");
for(int i = (n>>1)-1; i >= 0; i--){
for(int j = (n>>1)-i-1; j >= 0; j--) printf(" ");
for(int j = 0; j < (i<<1)+1; j ++) printf("*");
printf("\n");
}
}
int main()
{
int n;
scanf("%d", &n);
print(n);
return 0;
}5
*
***
*****
*******
*********
*******
*****
***
* 本帖最后由 jackz007 于 2021-10-27 22:04 编辑
【第3)题】:
#include <stdio.h>
int main(void)
{
int c , e ;
for(c = 0 , e = 1000 ; e < 10000 ; e ++) {
if((e / 100 + e % 100) * (e / 100 + e % 100) == e) {
if(c && ! (c % 3)) printf("\n") ;
if(c % 3) printf(" ") ;
printf("%7d" , e) ;
c ++ ;
}
}
printf("\n") ;
}
编译、运行实况:
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
2025 3025 9801
D:\00.Excise\C>
【第4)题】:
#include <stdio.h>
int main(void)
{
int b , i , j , n ;
scanf("%d", & n) ;
for(i = 1 ; i <= 2 * n - 1 ; i ++) {
b = (i > n) ? 2 * n - i : i ;
for(j = n - b ; j > 0 ; j --) printf(" ") ;
for(j = b * 2 - 1 ; j ; j --) printf("*") ;
printf("\n") ;
}
}
编译、运行实况:
D:\00.Excise\C>g++ -o x x.c
D:\00.Excise\C>x
5
*
***
*****
*******
*********
*******
*****
***
*
D:\00.Excise\C>x
6
*
***
*****
*******
*********
***********
*********
*******
*****
***
*
D:\00.Excise\C>x
7
*
***
*****
*******
*********
***********
*************
***********
*********
*******
*****
***
*
D:\00.Excise\C>
注意:以上图案与在 CMD 窗口中的视觉效果存在差异。
页:
[1]